While trying to use a SCSI disk on the LSI controller with an
older version of Fedora (25), I'm getting:
qemu: warning: Blocked re-entrant IO on MemoryRegion: lsi-mmio at addr: 0x34
and the SCSI controller is not usable. Seems like we have to
disable the reentrancy checker for the MMIO region, too, to
get this working again.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/scsi/lsi53c895a.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index db27872963..048436352b 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -2307,6 +2307,7 @@ static void lsi_scsi_realize(PCIDevice *dev, Error **errp)
* re-entrancy guard.
*/
s->ram_io.disable_reentrancy_guard = true;
+ s->mmio_io.disable_reentrancy_guard = true;
address_space_init(&s->pci_io_as, pci_address_space_io(dev), "lsi-pci-io");
qdev_init_gpio_out(d, &s->ext_irq, 1);
--
2.31.1
On 230516 1105, Thomas Huth wrote: > While trying to use a SCSI disk on the LSI controller with an > older version of Fedora (25), I'm getting: > > qemu: warning: Blocked re-entrant IO on MemoryRegion: lsi-mmio at addr: 0x34 Do you have a gdb backtrace for this one or is there some easy way to reproduce with just a LiveCD or something? Marking mmio_io re-entrancy safe would bring back https://gitlab.com/qemu-project/qemu/-/issues/1563 Maybe there is some other workaround here? -Alex > > and the SCSI controller is not usable. Seems like we have to > disable the reentrancy checker for the MMIO region, too, to > get this working again. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/scsi/lsi53c895a.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c > index db27872963..048436352b 100644 > --- a/hw/scsi/lsi53c895a.c > +++ b/hw/scsi/lsi53c895a.c > @@ -2307,6 +2307,7 @@ static void lsi_scsi_realize(PCIDevice *dev, Error **errp) > * re-entrancy guard. > */ > s->ram_io.disable_reentrancy_guard = true; > + s->mmio_io.disable_reentrancy_guard = true; > > address_space_init(&s->pci_io_as, pci_address_space_io(dev), "lsi-pci-io"); > qdev_init_gpio_out(d, &s->ext_irq, 1); > -- > 2.31.1 >
On 16/05/2023 11.27, Alexander Bulekov wrote: > On 230516 1105, Thomas Huth wrote: >> While trying to use a SCSI disk on the LSI controller with an >> older version of Fedora (25), I'm getting: >> >> qemu: warning: Blocked re-entrant IO on MemoryRegion: lsi-mmio at addr: 0x34 > > Do you have a gdb backtrace for this one or is there some easy way to > reproduce with just a LiveCD or something? I reproduced it like this: ./qemu-system-x86_64 -accel kvm -m 2G -machine q35 \ -device lsi53c810,id=lsi1 -device scsi-hd,drive=d0 \ -drive if=none,id=d0,file=.../somedisk.qcow2 \ -cdrom Fedora-Everything-netinst-i386-25-1.3.iso Where somedisk.qcow2 is an image that contains already some partitions and file systems. In the boot menu of Fedora, go to "Troubleshooting" -> "Rescue a Fedora system" -> "3) Skip to shell" Then check "dmesg | grep -i 53c" for failure messages, and try to mount a partition from somedisk.qcow2 > Marking mmio_io re-entrancy > safe would bring back https://gitlab.com/qemu-project/qemu/-/issues/1563 > Maybe there is some other workaround here? I think we manually have to disallow endless reentrancy in lsi_execute_script() ... I'm currently doing some experiments there... Thomas
© 2016 - 2024 Red Hat, Inc.