[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] piix: fix regression during unplug in Xen HVM domUs
I need advice on how to debug this. One thing that stands out is uhci_irq(). It reads a u16 from the USBSTS register. On the qemu side, this read is served from bmdma_read. Since the read size is 2, the result is ~0, and uhci_irq() turns the controller off. In other words, memory_region_ops_read from addr=0xc102 is served from "piix-bmdma" If the pci_set_word calls in piix_ide_reset are skipped, the read is served from uhci_port_write. This is the expected behavior. In other words, memory_region_ops_read from addr=0xc102 is served from "uhci". So far I was unable to decipher how the pci_set_word calls can possibly affect the outcome and the owner of memory_region_ops_read. Thanks, Olaf Wed, 10 May 2023 00:58:27 +0200 Olaf Hering <olaf@xxxxxxxxx>: > Resuming this old thread about an unfixed bug, which was introduced in > qemu-4.2: > > qemu ends up in piix_ide_reset from pci_unplug_disks. > This was not the case prior 4.2, the removed call to > qemu_register_reset(piix3_reset, d) in > ee358e919e385fdc79d59d0d47b4a81e349cd5c9 did apparently nothing. > > In my debugging (with v8.0.0) it turned out the three pci_set_word > causes the domU to hang. In fact, it is just the last one: > > pci_set_byte(pci_conf + 0x20, 0x01); /* BMIBA: 20-23h */ > > It changes the value from 0xc121 to 0x1. > > The question is: what does this do in practice? > > Starting with recent qemu (like 7.2), the domU sometimes proceeds with > these messages: > > [ 1.631161] uhci_hcd 0000:00:01.2: host system error, PCI problems? > [ 1.634965] uhci_hcd 0000:00:01.2: host controller process error, > something bad happened! > [ 1.634965] uhci_hcd 0000:00:01.2: host controller halted, very bad! > [ 1.634965] uhci_hcd 0000:00:01.2: HC died; cleaning up > Loading basic drivers...[ 2.398048] Disabling IRQ #23 Attachment:
pgprMNTZtk6np.pgp
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |