[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen-unstable: pci-passthrough "irq 16: nobody cared" on HVM guest shutdown on irq of device not passed through.
Friday, September 26, 2014, 11:43:04 AM, you wrote: >>>> On 26.09.14 at 11:18, <linux@xxxxxxxxxxxxxx> wrote: >> Friday, September 26, 2014, 8:59:22 AM, you wrote: >>>>>> On 26.09.14 at 00:09, <linux@xxxxxxxxxxxxxx> wrote: >>>> - Tried switching off the onboard soundcard in the bios. Now irq16 is not >>>> bound >>>> to any device, but the machine still freezes without any error (on >>>> serial >>>> console with sync-console on, triple ctrl-a also doesn't work anymore) >> >>> I suppose that hang is with irqpoll still in use? Ctrl-a not working anymore >>> makes me wonder whether you use a PCI serial card sitting on that same >>> IRQ for the Xen console... >> >> With and without irqpoll in use. > Oh, even without. That's worrying indeed. But again, the main thing > to understand is who sets up and unmasks IRQ 16 when and for > what reason. >> I don't know what happens if there is a race / ordering problem in say >> xen/iommu/pciback pulling >> the device from the guest on shutdown while there are still irq's pending ? >> >> (the code of xen_pciback's release and resetting function for instance seems >> to do a different >> ordering compared to vfio-pci's) > That's a different aspect, as long as I recall correctly that the passed > through device isn't itself sitting on IRQ 16. >>> Furthermore in that mode (with supposedly no >>> handler set up for IRQ 16) monitoring (with a little bit of debugging code) >>> how/when IRQ 16 gets setup and unmasked may provide further hints. >> >> I don't know if i made it clear enough, but without the device occupying >> irq16 >> it doesn't give the irq16 nobody cared (or any such message or error), it >> just >> freezes. > Because likely it doesn't even get that far. > Jan Ok done some more testing and it seems really borked to me. What i have done is: - I re-enabled the soundcard on 00:14.2 and it again is setup with irq 16 according to lspci. - I enabled initcall_debug and driver/bus debug in the dom0 kernel. - I added some extra debug info around the code paths involved in setting up the irq's and added a WARN_ON(gsi==16) in xen_register_gsi() The result at the boot of dom0, the first time gsi/irq16 is registered is: [ 66.819396] bus: 'pci': really_probe: bound device 0000:00:0d.0 to driver pcieport [ 66.842286] bus: 'pci': driver_probe_device: matched device 0000:00:15.0 with driver pcieport [ 66.868014] bus: 'pci': really_probe: probing driver pcieport with device 0000:00:15.0 [ 66.892106] xen: registering gsi 16 triggering 0 polarity 1 [ 66.908861] ------------[ cut here ]------------ [ 66.922902] WARNING: CPU: 2 PID: 1 at arch/x86/pci/xen.c:131 xen_register_gsi.part.5+0x40/0xc4() [ 66.949416] Modules linked in: [ 66.958775] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 3.17.0-rc6-20140925-vanilla-printk6+ #1 [ 66.984510] Hardware name: MSI MS-7640/890FXA-GD70 (MS-7640) , BIOS V1.8B1 09/13/2010 [ 67.008433] 0000000000000009 ffff880059b6fa18 ffffffff81b3164e ffff880059b90000 [ 67.030783] 0000000000000000 ffff880059b6fa58 ffffffff810c42c2 ffff880059b6fa78 [ 67.053152] 0000000000000010 0000000000000000 0000000000000001 00000000ffffffff [ 67.075503] Call Trace: [ 67.083051] [<ffffffff81b3164e>] dump_stack+0x46/0x58 [ 67.098651] [<ffffffff810c42c2>] warn_slowpath_common+0x82/0xb0 [ 67.116845] [<ffffffff810c4305>] warn_slowpath_null+0x15/0x20 [ 67.134525] [<ffffffff81b35207>] xen_register_gsi.part.5+0x40/0xc4 [ 67.153507] [<ffffffff819466fd>] acpi_register_gsi_xen+0x1d/0x20 [ 67.171967] [<ffffffff8103c8ca>] acpi_register_gsi+0xa/0x10 [ 67.189124] [<ffffffff814ebdf7>] acpi_pci_irq_enable+0xed/0x1bd [ 67.207327] [<ffffffff81499688>] ? pci_bus_read_config_word+0x88/0xa0 [ 67.227084] [<ffffffff81949139>] pcibios_enable_device+0x39/0x40 [ 67.245543] [<ffffffff814a122d>] do_pci_enable_device+0x4d/0x100 [ 67.263997] [<ffffffff814a2116>] pci_enable_device_flags+0xc6/0x120 [ 67.283236] [<ffffffff814a217e>] pci_enable_device+0xe/0x10 [ 67.300398] [<ffffffff814b0ea4>] pcie_port_device_register+0x24/0x4f0 [ 67.320156] [<ffffffff8110176a>] ? lock_release+0x12a/0x240 [ 67.337315] [<ffffffff814b1533>] pcie_portdrv_probe+0x43/0x70 [ 67.354994] [<ffffffff814a3428>] local_pci_probe+0x28/0x70 [ 67.371892] [<ffffffff814a3701>] pci_device_probe+0xd1/0x120 [ 67.389316] [<ffffffff8169f5f8>] driver_probe_device+0xe8/0x340 [ 67.407509] [<ffffffff8169f8f3>] __driver_attach+0xa3/0xb0 [ 67.424407] [<ffffffff8169f850>] ? driver_probe_device+0x340/0x340 [ 67.443392] [<ffffffff8169d7ad>] bus_for_each_dev+0x5d/0xa0 [ 67.460550] [<ffffffff8169f039>] driver_attach+0x19/0x20 [ 67.476927] [<ffffffff8169ec3d>] bus_add_driver+0xfd/0x210 [ 67.493829] [<ffffffff82343237>] ? dmi_pcie_pme_disable_msi+0x1a/0x1a [ 67.513584] [<ffffffff816a000f>] driver_register+0x5f/0xf0 [ 67.530479] [<ffffffff814a383f>] __pci_register_driver+0x5f/0x70 [ 67.548946] [<ffffffff8234329d>] pcie_portdrv_init+0x66/0x77 [ 67.566362] [<ffffffff810021bb>] do_one_initcall+0x13b/0x1f0 [ 67.583782] [<ffffffff8231528a>] kernel_init_freeable+0x204/0x298 [ 67.602503] [<ffffffff82314971>] ? do_early_param+0x8c/0x8c [ 67.619661] [<ffffffff810e4e2f>] ? finish_task_switch+0x7f/0xf0 [ 67.637858] [<ffffffff81b27f30>] ? rest_init+0xc0/0xc0 [ 67.653721] [<ffffffff81b27f39>] kernel_init+0x9/0xf0 [ 67.669314] [<ffffffff81b3cefc>] ret_from_fork+0x7c/0xb0 [ 67.685697] [<ffffffff81b27f30>] ? rest_init+0xc0/0xc0 [ 67.701561] ---[ end trace c3cbc73c89ab2f64 ]--- [ 67.715662] xen: --> pirq=16 -> irq=16 (gsi=16) (XEN) [2014-09-27 13:04:15.981] IOAPIC[0]: Set PCI routing entry (6-16 -> 0x71 -> IRQ 16 Mode:1 Active:1) [ 67.757210] pcieport 0000:00:15.0: ?!?!? acpi_pci_irq_enable: PCI INT A -> GSI 16 (level, low) -> IRQ/rc 16 [ 67.786816] device: '0000:00:15.0:pcie01': device_add [ 67.801916] bus: 'pci_express': add device 0000:00:15.0:pcie01 [ 67.819592] PM: Adding info for pci_express:0000:00:15.0:pcie01 [ 67.837603] driver: 'pcieport': driver_bound: bound to device '0000:00:15.0' [ 67.858843] bus: 'pci': really_probe: bound device 0000:00:15.0 to driver pcieport The second time it's registered to: [ 104.432241] calling patch_hdmi_init+0x0/0x12 @ 1 [ 104.432243] initcall patch_hdmi_init+0x0/0x12 returned 0 after 0 usecs [ 104.432245] calling azx_driver_init+0x0/0x1b @ 1 [ 104.432249] bus: 'pci': add driver snd_hda_intel [ 104.432267] bus: 'pci': driver_probe_device: matched device 0000:00:14.2 with driver snd_hda_intel [ 104.432268] bus: 'pci': really_probe: probing driver snd_hda_intel with device 0000:00:14.2 [ 104.432490] xen: registering gsi 16 triggering 0 polarity 1 [ 104.432491] ------------[ cut here ]------------ [ 104.432494] WARNING: CPU: 1 PID: 1 at arch/x86/pci/xen.c:131 xen_register_gsi.part.5+0x40/0xc4() [ 104.432495] Modules linked in: [ 104.432498] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W 3.17.0-rc6-20140925-vanilla-printk6+ #1 [ 104.432499] Hardware name: MSI MS-7640/890FXA-GD70 (MS-7640) , BIOS V1.8B1 09/13/2010 [ 104.432502] 0000000000000009 ffff880059b6fa78 ffffffff81b3164e ffff880059b90000 [ 104.432503] 0000000000000000 ffff880059b6fab8 ffffffff810c42c2 ffff880059b6fad8 [ 104.432505] 0000000000000010 0000000000000000 0000000000000001 00000000ffffffff [ 104.432505] Call Trace: [ 104.432508] [<ffffffff81b3164e>] dump_stack+0x46/0x58 [ 104.432510] [<ffffffff810c42c2>] warn_slowpath_common+0x82/0xb0 [ 104.432512] [<ffffffff810c4305>] warn_slowpath_null+0x15/0x20 [ 104.432514] [<ffffffff81b35207>] xen_register_gsi.part.5+0x40/0xc4 [ 104.432517] [<ffffffff819466fd>] acpi_register_gsi_xen+0x1d/0x20 [ 104.432519] [<ffffffff8103c8ca>] acpi_register_gsi+0xa/0x10 [ 104.432522] [<ffffffff814ebdf7>] acpi_pci_irq_enable+0xed/0x1bd [ 104.432524] [<ffffffff81499688>] ? pci_bus_read_config_word+0x88/0xa0 [ 104.432526] [<ffffffff81949139>] pcibios_enable_device+0x39/0x40 [ 104.432529] [<ffffffff814a122d>] do_pci_enable_device+0x4d/0x100 [ 104.432530] [<ffffffff814a2116>] pci_enable_device_flags+0xc6/0x120 [ 104.432532] [<ffffffff814a217e>] pci_enable_device+0xe/0x10 [ 104.432533] [<ffffffff81943f51>] azx_probe+0x81/0x700 [ 104.432535] [<ffffffff814a3428>] local_pci_probe+0x28/0x70 [ 104.432536] [<ffffffff814a3701>] pci_device_probe+0xd1/0x120 [ 104.432538] [<ffffffff8169f5f8>] driver_probe_device+0xe8/0x340 [ 104.432540] [<ffffffff8169f8f3>] __driver_attach+0xa3/0xb0 [ 104.432541] [<ffffffff8169f850>] ? driver_probe_device+0x340/0x340 [ 104.432543] [<ffffffff8169d7ad>] bus_for_each_dev+0x5d/0xa0 [ 104.432544] [<ffffffff8169f039>] driver_attach+0x19/0x20 [ 104.432545] [<ffffffff8169ec3d>] bus_add_driver+0xfd/0x210 [ 104.432547] [<ffffffff8235765a>] ? patch_hdmi_init+0x12/0x12 [ 104.432548] [<ffffffff816a000f>] driver_register+0x5f/0xf0 [ 104.432550] [<ffffffff814a383f>] __pci_register_driver+0x5f/0x70 [ 104.432552] [<ffffffff810021b5>] ? do_one_initcall+0x135/0x1f0 [ 104.432554] [<ffffffff82357673>] azx_driver_init+0x19/0x1b [ 104.432555] [<ffffffff810021bb>] do_one_initcall+0x13b/0x1f0 [ 104.432558] [<ffffffff8231528a>] kernel_init_freeable+0x204/0x298 [ 104.432560] [<ffffffff82314971>] ? do_early_param+0x8c/0x8c [ 104.432562] [<ffffffff810e4e2f>] ? finish_task_switch+0x7f/0xf0 [ 104.432564] [<ffffffff81b27f30>] ? rest_init+0xc0/0xc0 [ 104.432568] [<ffffffff81b27f39>] kernel_init+0x9/0xf0 [ 104.432570] [<ffffffff81b3cefc>] ret_from_fork+0x7c/0xb0 [ 104.432572] [<ffffffff81b27f30>] ? rest_init+0xc0/0xc0 [ 104.432573] ---[ end trace c3cbc73c89ab2f65 ]--- [ 104.432576] ?!?!? xen_register_pirq 1: --> pirq=-30720 -> irq=16 (gsi=16) [ 104.432578] Already setup the GSI :16 [ 104.432580] snd_hda_intel 0000:00:14.2: ?!?!? acpi_pci_irq_enable: PCI INT A -> GSI 16 (level, low) -> IRQ/rc 16 [ 104.432594] driver: 'snd_hda_intel': driver_bound: bound to device '0000:00:14.2' [ 104.432815] bus: 'pci': really_probe: bound device 0000:00:14.2 to driver snd_hda_intel But in the lspci output i have: 00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) (rev 40) Subsystem: Micro-Star International Co., Ltd. Device 7640 Flags: bus master, slow devsel, latency 64, IRQ 16 Memory at fdbf8000 (64-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 2 Kernel driver in use: snd_hda_intel 00:15.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=02, subordinate=02, sec-latency=0 Capabilities: [50] Power Management version 3 Capabilities: [58] Express Root Port (Slot+), MSI 00 Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device 0000 Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+ Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Kernel driver in use: pcieport And in tree form: -[0000:00]-+-00.0 Advanced Micro Devices [AMD] nee ATI RD890 Northbridge only single slot PCI-e GFX Hydra part +-00.2 Advanced Micro Devices [AMD] nee ATI RD990 I/O Memory Management Unit (IOMMU) +-02.0-[0f]--+-00.0 Advanced Micro Devices [AMD] nee ATI RV620 LE [Radeon HD 3450] | \-00.1 Advanced Micro Devices [AMD] nee ATI RV620 HDMI Audio [Radeon HD 3400 Series] +-03.0-[0e]--+-00.0 Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6570] | \-00.1 Advanced Micro Devices [AMD] nee ATI Turks/Whistler HDMI Audio [Radeon HD 6000 Series] +-05.0-[0d]----00.0 Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller +-06.0-[0c]----00.0 Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller +-09.0-[0b]----00.0 NEC Corporation uPD720200 USB 3.0 Host Controller +-0a.0-[0a]----00.0 Conexant Systems, Inc. Device 8210 +-0b.0-[09]--+-00.0 Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6570] | \-00.1 Advanced Micro Devices [AMD] nee ATI Turks/Whistler HDMI Audio [Radeon HD 6000 Series] +-0c.0-[05-08]----00.0-[06-08]--+-01.0-[08]----00.0 NEC Corporation uPD720200 USB 3.0 Host Controller | \-02.0-[07]----00.0 Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller +-0d.0-[04]----00.0 NEC Corporation uPD720200 USB 3.0 Host Controller +-11.0 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] +-12.0 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller +-12.2 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller +-13.0 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller +-13.2 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller +-14.0 Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller +-14.2 Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) +-14.3 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller +-14.4-[03]----06.0 C-Media Electronics Inc CMI8738/CMI8768 PCI Audio +-14.5 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller +-15.0-[02]-- +-16.0 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller +-16.2 Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller +-18.0 Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration +-18.1 Advanced Micro Devices [AMD] Family 10h Processor Address Map +-18.2 Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller +-18.3 Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control \-18.4 Advanced Micro Devices [AMD] Family 10h Processor Link Control However i still don't see a clear connection with the device 09:00.0, i'm passing through and functions, and gives the "irq 16 nobody cared" on shutdown. -- Sander _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |