[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] PVH Dom0 Intel IOMMU issues
On Mon, Apr 17, 2017 at 07:32:45AM +0800, Chao Gao wrote: > On Fri, Apr 14, 2017 at 04:34:41PM +0100, Roger Pau Monné wrote: > >Hello, > > > >Although PVHv2 Dom0 is not yet finished, I've been trying the current code on > >different hardware, and found that with pre-Haswell Intel hardware PVHv2 Dom0 > >completely freezes the box when calling iommu_hwdom_init in > >dom0_construct_pvh. > >OTOH the same doesn't happen when using a newer CPU (ie: haswell or newer). > > > >I'm not able to debug that in any meaningful way because the box seems to > >lock > >up completely, even the watchdog NMI stops working. Here is the boot log, up > >to > >the point where it freezes: > > I try "dom0=pvh" with my skylake. An assertion failed. Is it a software bug? > [...] > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0]) > (XEN) [ 0.000000] IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, > GSI 0-23 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x09] address[0xfec01000] gsi_base[24]) > (XEN) [ 0.000000] IOAPIC[1]: apic_id 9, version 32, address 0xfec01000, > GSI 24-31 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x0a] address[0xfec08000] gsi_base[32]) > (XEN) [ 0.000000] IOAPIC[2]: apic_id 10, version 32, address 0xfec08000, > GSI 32-39 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x0b] address[0xfec10000] gsi_base[40]) > (XEN) [ 0.000000] IOAPIC[3]: apic_id 11, version 32, address 0xfec10000, > GSI 40-47 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x0c] address[0xfec18000] gsi_base[48]) > (XEN) [ 0.000000] IOAPIC[4]: apic_id 12, version 32, address 0xfec18000, > GSI 48-55 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x0f] address[0xfec20000] gsi_base[72]) > (XEN) [ 0.000000] IOAPIC[5]: apic_id 15, version 32, address 0xfec20000, > GSI 72-79 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x10] address[0xfec28000] gsi_base[80]) > (XEN) [ 0.000000] IOAPIC[6]: apic_id 16, version 32, address 0xfec28000, > GSI 80-87 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x11] address[0xfec30000] gsi_base[88]) > (XEN) [ 0.000000] IOAPIC[7]: apic_id 17, version 32, address 0xfec30000, > GSI 88-95 > (XEN) [ 0.000000] ACPI: IOAPIC (id[0x12] address[0xfec38000] gsi_base[96]) > (XEN) [ 0.000000] IOAPIC[8]: apic_id 18, version 32, address 0xfec38000, > GSI 96-103 [...] > (XEN) [ 0.000000] IRQ limits: 104 GSI, 21416 MSI/MSI-X [...] > (XEN) [ 14.147217] Dom0 has maximum 1448 PIRQs > (XEN) [ 14.151527] Assertion 'hvm_domain_irq(d)->nr_gsis == nr_gsis' failed > at vioapic.c:600 > (XEN) [ 14.154404] ----[ Xen-4.9-unstable x86_64 debug=y Not tainted > ]---- > (XEN) [ 14.155867] CPU: 0 > (XEN) [ 14.157286] RIP: e008:[<ffff82d0802ef735>] > vioapic_init+0x110/0x167 > (XEN) [ 14.158750] RFLAGS: 0000000000010287 CONTEXT: hypervisor > (XEN) [ 14.160203] rax: ffff830837c7fa00 rbx: 0000000000000009 rcx: > 00000000c8381c70 > (XEN) [ 14.163073] rdx: 0000000000000071 rsi: ffff830837c7e400 rdi: > ffff83083fff7868 > (XEN) [ 14.165937] rbp: ffff82d080457d28 rsp: ffff82d080457ce8 r8: > ffff82e000000000 > (XEN) [ 14.168797] r9: 0000000000000381 r10: ffff82d08045f400 r11: > 0000000000000000 > (XEN) [ 14.171657] r12: 0000000000000008 r13: ffff830837d29000 r14: > 0000000000000058 > (XEN) [ 14.174568] r15: ffff830837c7fb20 cr0: 000000008005003b cr4: > 00000000003526e0 > (XEN) [ 14.177437] cr3: 000000006f84c000 cr2: 0000000000000000 > (XEN) [ 14.178887] ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: 0000 > cs: e008 > (XEN) [ 14.181753] Xen code around <ffff82d0802ef735> > (vioapic_init+0x110/0x167): > (XEN) [ 14.184609] 00 00 44 3b 70 40 74 02 <0f> 0b 8b 45 cc 41 89 85 b0 02 > 00 00 4c 89 ef e8 > (XEN) [ 14.187473] Xen stack trace from rsp=ffff82d080457ce8: > (XEN) [ 14.188916] ffff82d08029e7de 0000000937c7f010 ffff82d080457d08 > ffff830837d29000 > (XEN) [ 14.191784] 0000000000000068 0000000000000001 0000000000000000 > 0000000000000000 > (XEN) [ 14.194645] ffff82d080457d48 ffff82d0802de276 ffff830837d29000 > 0000000000000000 > (XEN) [ 14.197507] ffff82d080457d78 ffff82d08026d593 ffff82d080457d78 > ffff830837d29000 > (XEN) [ 14.200371] 000000000000001f 0000000000000007 ffff82d080457de8 > ffff82d080205226 > (XEN) [ 14.203234] ffff82d0804380e0 0000000000000004 ffff82d080457eb4 > 0000000000000000 > (XEN) [ 14.206097] ffff82d080457dc8 f7fa32231fcbfbff 000001212c100800 > 00000000000000e0 > (XEN) [ 14.208956] ffff830838543850 00000000000000e0 ffff82d08043b780 > 000000000000006f > (XEN) [ 14.211817] ffff82d080457f08 ffff82d0803ee1be 000000000028fe80 > 000000000000015c > (XEN) [ 14.214739] 00000000000001df 0000000200000000 0000000000000002 > 0000000000000002 > (XEN) [ 14.217598] 0000000000000002 0000000000000001 0000000000000001 > 0000000000000001 > (XEN) [ 14.220459] 0000000000000001 0000000000000000 ffff82d080429a90 > 0000000000000017 > (XEN) [ 14.223317] 0000001075ec7000 00000000013b7000 0000000001080000 > 0000000000000000 > (XEN) [ 14.226178] ffff830000000002 ffff830000097c60 ffff830000097ee0 > ffff830000097fb0 > (XEN) [ 14.229039] 0000000000000000 0000001100000000 0000000800000000 > 000000010000006e > (XEN) [ 14.231901] 0000000000000003 00000000000002f8 0000000000000000 > 0000000000000000 > (XEN) [ 14.234770] 00000000000000e8 0000000068924a50 000000006c5b8a28 > 000000006c5b8a40 > (XEN) [ 14.237640] 0000000000000000 ffff82d0802000f3 0000000000000000 > 0000000000000000 > (XEN) [ 14.240504] 0000000000000000 0000000000000000 0000000000000000 > 0000000000000000 > (XEN) [ 14.243374] 0000000000000000 0000000000000000 0000000000000000 > 0000000000000000 > (XEN) [ 14.246245] Xen call trace: > (XEN) [ 14.247668] [<ffff82d0802ef735>] vioapic_init+0x110/0x167 > (XEN) [ 14.249126] [<ffff82d0802de276>] hvm_domain_initialise+0x268/0x365 > (XEN) [ 14.250593] [<ffff82d08026d593>] arch_domain_create+0x4b0/0x6ac > (XEN) [ 14.252055] [<ffff82d080205226>] domain_create+0x3d8/0x593 > (XEN) [ 14.253578] [<ffff82d0803ee1be>] __start_xen+0x20fa/0x24c3 > (XEN) [ 14.255029] [<ffff82d0802000f3>] __high_start+0x53/0x58 > (XEN) [ 14.256481] > (XEN) [ 14.510271] > (XEN) [ 14.513527] **************************************** > (XEN) [ 14.520279] Panic on CPU 0: > (XEN) [ 14.524726] Assertion 'hvm_domain_irq(d)->nr_gsis == nr_gsis' failed > at vioapic.c:600 > (XEN) [ 14.535470] **************************************** > (XEN) [ 14.542091] > (XEN) [ 14.545230] Reboot in five seconds... > (XEN) [ 19.553630] Resetting with ACPI MEMORY or I/O RESET_REG. This is certainly unexpected. Can you try again with the debug patch below applied? It should show what's actually wrong. Thanks, Roger. ---8<--- diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c index 527ac2aadd..1df7710041 100644 --- a/xen/arch/x86/hvm/vioapic.c +++ b/xen/arch/x86/hvm/vioapic.c @@ -625,6 +625,9 @@ int vioapic_init(struct domain *d) nr_gsis += nr_pins; } + printk("domain nr_gsis: %u vioapic gsis: %u nr_irqs_gsi: %u highest_gsi: %u\n", + hvm_domain_irq(d)->nr_gsis, nr_gsis, nr_irqs_gsi, highest_gsi()); + ASSERT(hvm_domain_irq(d)->nr_gsis == nr_gsis); d->arch.hvm_domain.nr_vioapics = nr_vioapics; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |