summary refs log tree commit diff stats
path: root/util/bufferiszero.c
diff options
context:
space:
mode:
authorElazar Leibovich <elazar.leibovich@oracle.com>2020-03-15 15:26:34 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2020-04-01 19:00:16 +0200
commite7ebf057e6a1ca4f5599caea143daa2135175a87 (patch)
tree126b762448a31eef0fe1c65dbb55ece19b42c031 /util/bufferiszero.c
parent2833ad487cfff7dc33703e4731b75facde1c561e (diff)
downloadfocaccia-qemu-e7ebf057e6a1ca4f5599caea143daa2135175a87.tar.gz
focaccia-qemu-e7ebf057e6a1ca4f5599caea143daa2135175a87.zip
hw/scsi/vmw_pvscsi: Remove assertion for kick after reset
When running Ubuntu 3.13.0-65-generic guest, QEMU sometimes crashes
during guest ACPI reset. It crashes on assert(s->rings_info_valid)
in pvscsi_process_io().

Analyzing the crash revealed that it happens when userspace issues
a sync during a reboot syscall.

Below are backtraces we gathered from the guests.

Guest backtrace when issuing PVSCSI_CMD_ADAPTER_RESET:
    pci_device_shutdown
    device_shutdown
    init_pid_ns
    init_pid_ns
    kernel_power_off
    SYSC_reboot

Guest backtrace when issuing PVSCSI_REG_OFFSET_KICK_RW_IO:
    scsi_done
    scsi_dispatch_cmd
    blk_add_timer
    scsi_request_fn
    elv_rb_add
    __blk_run_queue
    queue_unplugged
    blk_flush_plug_list
    blk_finish_plug
    ext4_writepages
    set_next_entity
    do_writepages
    __filemap_fdatawrite_range
    filemap_write_and_wait_range
    ext4_sync_file
    ext4_sync_file
    do_fsync
    sys_fsync

Since QEMU pvscsi should imitate VMware pvscsi device emulation,
we decided to imitate VMware's behavior in this case.

To check VMware behavior, we wrote a kernel module that issues
a reset to the pvscsi device and then issues a kick. We ran it on
VMware ESXi 6.5 and it seems that it simply ignores the kick.
Hence, we decided to ignore the kick as well.

Signed-off-by: Elazar Leibovich <elazar.leibovich@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200315132634.113632-1-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'util/bufferiszero.c')
0 files changed, 0 insertions, 0 deletions