qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* virtio,iommu_platform=on
@ 2019-11-12  3:53 Alexey Kardashevskiy
  2019-11-12  7:08 ` virtio,iommu_platform=on Michael S. Tsirkin
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Alexey Kardashevskiy @ 2019-11-12  3:53 UTC (permalink / raw)
  To: qemu-devel; +Cc: David Gibson, Michael S. Tsirkin

Hi!

I am enabling IOMMU for virtio in the pseries firmware (SLOF) and seeing
problems, one of them is SLOF does SCSI bus scan, then it stops the
virtio-scsi by clearing MMIO|IO|BUSMASTER from PCI_COMMAND (as SLOF
stopped using the devices) and when this happens, I see unassigned
memory access (see below) which happens because disabling busmaster
disables IOMMU and QEMU cannot access the rings to do some shutdown. And
when this happens, the device does not come back even if SLOF re-enables it.

Hacking SLOF to not clear BUSMASTER makes virtio-scsi work but it is
hardly a right fix.

Is this something expected? Thanks,


Here is the exact command line:

/home/aik/pbuild/qemu-garrison2-ppc64/ppc64-softmmu/qemu-system-ppc64 \

-nodefaults \

-chardev stdio,id=STDIO0,signal=off,mux=on \

-device spapr-vty,id=svty0,reg=0x71000110,chardev=STDIO0 \

-mon id=MON0,chardev=STDIO0,mode=readline \

-nographic \

-vga none \

-enable-kvm \
-m 2G \

-device
virtio-scsi-pci,id=vscsi0,iommu_platform=on,disable-modern=off,disable-legacy=on
\
-drive id=DRIVE0,if=none,file=img/u1804-64le.qcow2,format=qcow2 \

-device scsi-disk,id=scsi-disk0,drive=DRIVE0 \

-snapshot \

-smp 1 \

-machine pseries \

-L /home/aik/t/qemu-ppc64-bios/ \

-trace events=qemu_trace_events \

-d guest_errors \

-chardev socket,id=SOCKET0,server,nowait,path=qemu.mon.ssh59518 \

-mon chardev=SOCKET0,mode=control



Here is the backtrace:

Thread 5 "qemu-system-ppc" hit Breakpoint 8, unassigned_mem_accepts
(opaque=0x0, addr=0x5802, size=0x2, is_write=0x0, attrs=...) at /home/
aik/p/qemu/memory.c:1275
1275        return false;
#0  unassigned_mem_accepts (opaque=0x0, addr=0x5802, size=0x2,
is_write=0x0, attrs=...) at /home/aik/p/qemu/memory.c:1275
#1  0x00000000100a8ac8 in memory_region_access_valid (mr=0x1105c230
<io_mem_unassigned>, addr=0x5802, size=0x2, is_write=0x0, attrs=...) at
/home/aik/p/qemu/memory.c:1377
#2  0x00000000100a8c88 in memory_region_dispatch_read (mr=0x1105c230
<io_mem_unassigned>, addr=0x5802, pval=0x7ffff550d410, op=MO_16,
attrs=...) at /home/aik/p/qemu/memory.c:1418
#3  0x000000001001cad4 in address_space_lduw_internal_cached_slow
(cache=0x7fff68036fa0, addr=0x2, attrs=..., result=0x0,
endian=DEVICE_LITTLE_ENDIAN) at /home/aik/p/qemu/memory_ldst.inc.c:211
#4  0x000000001001cc84 in address_space_lduw_le_cached_slow
(cache=0x7fff68036fa0, addr=0x2, attrs=..., result=0x0) at
/home/aik/p/qemu/memory_ldst.inc.c:249
#5  0x000000001019bd80 in address_space_lduw_le_cached
(cache=0x7fff68036fa0, addr=0x2, attrs=..., result=0x0) at
/home/aik/p/qemu/include/exec/memory_ldst_cached.inc.h:56
#6  0x000000001019c10c in lduw_le_phys_cached (cache=0x7fff68036fa0,
addr=0x2) at /home/aik/p/qemu/include/exec/memory_ldst_phys.inc.h:91
#7  0x000000001019d86c in virtio_lduw_phys_cached (vdev=0x118b9110,
cache=0x7fff68036fa0, pa=0x2) at
/home/aik/p/qemu/include/hw/virtio/virtio-access.h:166
#8  0x000000001019e648 in vring_avail_idx (vq=0x118c2720) at
/home/aik/p/qemu/hw/virtio/virtio.c:302
#9  0x000000001019f5bc in virtio_queue_split_empty (vq=0x118c2720) at
/home/aik/p/qemu/hw/virtio/virtio.c:581
#10 0x000000001019f838 in virtio_queue_empty (vq=0x118c2720) at
/home/aik/p/qemu/hw/virtio/virtio.c:612
#11 0x00000000101a8fa8 in virtio_queue_host_notifier_aio_poll
(opaque=0x118c2798) at /home/aik/p/qemu/hw/virtio/virtio.c:3389
#12 0x000000001092679c in run_poll_handlers_once (ctx=0x11212e40,
timeout=0x7ffff550d7d8) at /home/aik/p/qemu/util/aio-posix.c:520
#13 0x0000000010926aec in try_poll_mode (ctx=0x11212e40,
timeout=0x7ffff550d7d8) at /home/aik/p/qemu/util/aio-posix.c:607
#14 0x0000000010926c2c in aio_poll (ctx=0x11212e40, blocking=0x1) at
/home/aik/p/qemu/util/aio-posix.c:639
#15 0x000000001091fe0c in aio_wait_bh_oneshot (ctx=0x11212e40,
cb=0x1016f35c <virtio_scsi_dataplane_stop_bh>, opaque=0x118b9110) at
/home/aik/p/qemu/util/aio-wait.c:71
#16 0x000000001016fa60 in virtio_scsi_dataplane_stop (vdev=0x118b9110)
at /home/aik/p/qemu/hw/scsi/virtio-scsi-dataplane.c:211
#17 0x0000000010684740 in virtio_bus_stop_ioeventfd (bus=0x118b9098) at
/home/aik/p/qemu/hw/virtio/virtio-bus.c:245
#18 0x0000000010688290 in virtio_pci_stop_ioeventfd (proxy=0x118b0fa0)
at /home/aik/p/qemu/hw/virtio/virtio-pci.c:292
#19 0x00000000106891e8 in virtio_write_config (pci_dev=0x118b0fa0,
address=0x4, val=0x100100, len=0x4) at
/home/aik/p/qemu/hw/virtio/virtio-pci.c:613
#20 0x00000000105b7228 in pci_host_config_write_common
(pci_dev=0x118b0fa0, addr=0x4, limit=0x100, val=0x100100, len=0x4) at
/home/aik/p/qemu/hw/pci/pci_host.c:81
#21 0x00000000101f7bdc in finish_write_pci_config (spapr=0x11217200,
buid=0x800000020000000, addr=0x4, size=0x4, val=0x100100,
rets=0x7e7533e0) at /home/aik/p/qemu/hw/ppc/spapr_pci.c:192
#22 0x00000000101f7cec in rtas_ibm_write_pci_config (cpu=0x11540df0,
spapr=0x11217200, token=0x2017, nargs=0x5, args=0x7e7533cc, nret=0x1,
rets=0x7e7533e0) at /home/aik/p/qemu/hw/ppc/spapr_pci.c:216
#23 0x00000000101f5860 in spapr_rtas_call (cpu=0x11540df0,
spapr=0x11217200, token=0x2017, nargs=0x5, args=0x7e7533cc, nret=0x1,
rets=0x7e7533e0) at /home/aik/p/qemu/hw/ppc/spapr_rtas.c:416
#24 0x00000000101ee214 in h_rtas (cpu=0x11540df0, spapr=0x11217200,
opcode=0xf000, args=0x7ffff4cf0030) at
/home/aik/p/qemu/hw/ppc/spapr_hcall.c:1214
#25 0x00000000101f0524 in spapr_hypercall (cpu=0x11540df0,
opcode=0xf000, args=0x7ffff4cf0030) at
/home/aik/p/qemu/hw/ppc/spapr_hcall.c:2014
#26 0x000000001033bff0 in kvm_arch_handle_exit (cs=0x11540df0,
run=0x7ffff4cf0000) at /home/aik/p/qemu/target/ppc/kvm.c:1684
#27 0x00000000100cc7c8 in kvm_cpu_exec (cpu=0x11540df0) at
/home/aik/p/qemu/accel/kvm/kvm-all.c:2391
#28 0x000000001008edf8 in qemu_kvm_cpu_thread_fn (arg=0x11540df0) at
/home/aik/p/qemu/cpus.c:1318
#29 0x000000001092c704 in qemu_thread_start (args=0x11588d90) at
/home/aik/p/qemu/util/qemu-thread-posix.c:519
#30 0x00007ffff7b58070 in start_thread (arg=0x7ffff550ebf0) at
pthread_create.c:335
#31 0x00007ffff7aa3a70 in clone () at
../sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S:96
(gdb)

-- 
Alexey


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2019-11-15  1:45 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-12  3:53 virtio,iommu_platform=on Alexey Kardashevskiy
2019-11-12  7:08 ` virtio,iommu_platform=on Michael S. Tsirkin
2019-11-13  4:44   ` virtio,iommu_platform=on Alexey Kardashevskiy
2019-11-13 10:00     ` virtio,iommu_platform=on Michael S. Tsirkin
2019-11-13 22:58       ` virtio,iommu_platform=on Alexey Kardashevskiy
2019-11-14  8:42         ` virtio,iommu_platform=on Michael S. Tsirkin
2019-11-15  1:43           ` virtio,iommu_platform=on Alexey Kardashevskiy
2019-11-12  9:06 ` virtio,iommu_platform=on Laszlo Ersek
2019-11-13  4:54   ` virtio,iommu_platform=on Alexey Kardashevskiy
2019-11-13  5:54 ` virtio,iommu_platform=on Michael Roth
2019-11-13  6:23   ` virtio,iommu_platform=on Alexey Kardashevskiy
2019-11-13  6:35     ` virtio,iommu_platform=on Alexey Kardashevskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).