From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Elazar Leibovich <elazar.leibovich@oracle.com>,
Liran Alon <liran.alon@oracle.com>
Subject: [PULL 01/15] hw/scsi/vmw_pvscsi: Remove assertion for kick after reset
Date: Thu, 2 Apr 2020 15:06:26 -0400 [thread overview]
Message-ID: <20200402190640.1693-2-pbonzini@redhat.com> (raw)
In-Reply-To: <20200402190640.1693-1-pbonzini@redhat.com>
From: Elazar Leibovich <elazar.leibovich@oracle.com>
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>
---
hw/scsi/vmw_pvscsi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index c91352cf46..ec5bf9ea34 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -719,7 +719,10 @@ pvscsi_process_io(PVSCSIState *s)
PVSCSIRingReqDesc descr;
hwaddr next_descr_pa;
- assert(s->rings_info_valid);
+ if (!s->rings_info_valid) {
+ return;
+ }
+
while ((next_descr_pa = pvscsi_ring_pop_req_descr(&s->rings)) != 0) {
/* Only read after production index verification */
--
2.18.2
next prev parent reply other threads:[~2020-04-02 19:08 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-02 19:06 [PULL 00/15] Misc patches for 5.0-rc2 Paolo Bonzini
2020-04-02 19:06 ` Paolo Bonzini [this message]
2020-04-02 19:06 ` [PULL 02/15] hw/isa/superio: Correct the license text Paolo Bonzini
2020-04-02 19:06 ` [PULL 03/15] virtio-iommu: depend on PCI Paolo Bonzini
2020-04-02 19:06 ` [PULL 04/15] softmmu: fix crash with invalid -M memory-backend= Paolo Bonzini
2020-04-02 19:06 ` [PULL 05/15] MAINTAINERS: Add an entry for the HVF accelerator Paolo Bonzini
2020-04-02 19:06 ` [PULL 06/15] util/bufferiszero: assign length_to_accel value for each accelerator case Paolo Bonzini
2020-04-02 19:06 ` [PULL 07/15] util/bufferiszero: improve avx2 accelerator Paolo Bonzini
2020-04-02 19:06 ` [PULL 08/15] vl: fix broken IPA range for ARM -M virt with KVM enabled Paolo Bonzini
2020-04-02 19:06 ` [PULL 09/15] i386: hvf: Reset IRQ inhibition after moving RIP Paolo Bonzini
2020-04-02 19:06 ` [PULL 10/15] serial: Fix double migration data Paolo Bonzini
2020-04-02 19:06 ` [PULL 11/15] target/i386: do not set unsupported VMX secondary execution controls Paolo Bonzini
2020-04-02 19:06 ` [PULL 12/15] migration: fix cleanup_bh leak on resume Paolo Bonzini
2020-04-02 19:06 ` [PULL 13/15] qmp: fix leak on callbacks that return both value and error Paolo Bonzini
2020-04-02 19:06 ` [PULL 14/15] object-add: don't create return value if failed Paolo Bonzini
2020-04-02 19:06 ` [PULL 15/15] xen: fixup RAM memory region initialization Paolo Bonzini
2020-04-02 20:16 ` [PULL 00/15] Misc patches for 5.0-rc2 no-reply
2020-04-02 20:17 ` no-reply
2020-04-02 20:17 ` no-reply
2020-04-03 9:07 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200402190640.1693-2-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=elazar.leibovich@oracle.com \
--cc=liran.alon@oracle.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.