[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] [PATCH] fix iommu interrupt setup
It is because in iommu_set_interrupt(), the vector_to_iommu[] is setup after request_irq(), while request_irq() will call start_up(), which will need the vector_to_iommu[]. So maybe we can setup the vector_to_iommup[] before request_irq(). Thanks Yunhong Jiang Jiang, Yunhong <> wrote: > Sorry, seems queue_invalidate_wait() has irq disabled also :$ > So there should have other reason for it. > > -- Yunhong Jiang > > xen-devel-bounces@xxxxxxxxxxxxxxxxxxx <> wrote: >> Allen, this is because the register_lock is not always called >> with irq disabled. Seems it is called with spin_lock(), >> instead of spin_lock_irqsave() in queue_invalidate_wait(). >> >> But I'm a bit curios why intel_vtd_setup() will be called >> after queue_invalidate_wait(). >> >> Thanks >> Yunhong Jiang >> >> xen-devel-bounces@xxxxxxxxxxxxxxxxxxx <> wrote: >>> I'm getting the same bug. >>> -Alex >>> >>> (XEN) ----[ Xen-3.4-unstable x86_64 debug=y Not tainted ]---- (XEN) >>> CPU: 0 (XEN) RIP: e008:[<ffff828c8011b62f>] check_lock+0x19/0x4e >>> (XEN) RFLAGS: 0000000000010046 CONTEXT: hypervisor >>> (XEN) rax: 0000000000000001 rbx: 0000000000000040 rcx: >>> 0000000000000001 (XEN) rdx: 0000000000000082 rsi: 0000000000000001 >>> rdi: 0000000000000044 (XEN) rbp: ffff828c80277c58 rsp: ffff828c80277c58 >>> r8: 0000000000000005 (XEN) r9: 0000000000000001 r10: 0000000000000001 >>> r11: ffff828c8028e360 (XEN) r12: 0000000000000082 r13: 0000000000000282 >>> r14: 0000000000000090 (XEN) r15: ffff83013bfba430 cr0: 000000008005003b >>> cr4: 00000000000026f0 (XEN) cr3: 00000000bd47c000 cr2: 0000000000000044 >>> (XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: 0000 cs: e008 >>> (XEN) Xen stack trace from rsp=ffff828c80277c58: >>> (XEN) ffff828c80277c78 ffff828c8011b7aa 0000000000000000 >>> 0000000000000040 (XEN) ffff828c80277c98 ffff828c8012e223 >>> ffff828c802a1c00 ffff828c802a1c24 (XEN) ffff828c80277ca8 >>> ffff828c8012e282 ffff828c80277ce8 ffff828c80147e90 (XEN) >>> ffff828c80277ce8 00000000fffffff4 0000000000000090 ffff828c8012e938 (XEN) >>> ffff828c801e31cd ffff83013bff1f90 ffff828c80277d28 ffff828c801483be (XEN) >>> ffff83013bfba430 0000000000000090 ffff83013bff1f90 0000000000004800 (XEN) >>> ffff83013bff1f90 ffff828c8029d400 ffff828c80277d68 ffff828c8012e5ef (XEN) >>> ffff828c80277d48 0000000000000003 ffff83013bff1f90 0000000000000282 (XEN) >>> ffff83013bff16f0 0000000000100000 ffff828c80277d98 ffff828c8012e7a1 (XEN) >>> 0000000000000003 ffff83013bfba330 ffff828c8020c930 0000000000000020 (XEN) >>> ffff828c80277de8 ffff828c8012fe48 ffff828c80277dd8 ffff828c8012a2e9 (XEN) >>> 0000000000000002 000100018020a4c0 0001000100010001 00000000ffffffed (XEN) >>> ffff828c8022fc08 0000000000000003 ffff828c80277e08 ffff828c8012c008 (XEN) >>> ffff828c80277e08 ffff828c8022faf8 ffff828c80277f18 ffff828c80223d09 (XEN) >>> 0000000000000000 0000000000000000 0000000000000000 ffff828c8020f665 (XEN) >>> ffffffffc0270000 ffff8300bd47cff8 ffff8300bd47dff8 000000000008bf50 (XEN) >>> 0000000000000000 0000000000000000 0000000000000000 ffff83000008bfc0 (XEN) >>> ffff83000008bf50 0000000000cc3c00 0000000000000000 0000000000000000 (XEN) >>> 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) >>> 0000000000000000 0000000000000000 0000000800000000 000000010000006e (XEN) >>> Xen call trace: (XEN) [<ffff828c8011b62f>] check_lock+0x19/0x4e (XEN) >>> [<ffff828c8011b7aa>] _spin_lock_irqsave+0x21/0x3f (XEN) >>> [<ffff828c8012e223>] dma_msi_unmask+0x2a/0x4b (XEN) >>> [<ffff828c8012e282>] dma_msi_startup+0x9/0x10 (XEN) >>> [<ffff828c80147e90>] setup_irq_vector+0x73/0x99 (XEN) >>> [<ffff828c801483be>] request_irq_vector+0x6c/0x9a (XEN) >>> [<ffff828c8012e5ef>] iommu_set_interrupt+0x97/0x10f (XEN) >>> [<ffff828c8012e7a1>] init_vtd_hw+0x13a/0x2d1 (XEN) [<ffff828c8012fe48>] >>> intel_vtd_setup+0x330/0x4bb (XEN) [<ffff828c8012c008>] >>> iommu_setup+0x2d/0xf5 (XEN) [<ffff828c80223d09>] >>> __start_xen+0x463f/0x4956 (XEN) (XEN) Pagetable walk from >>> 0000000000000044: (XEN) L4[0x000] = 000000013bff0063 5555555555555555 >>> (XEN) L3[0x000] = 000000013bfef063 5555555555555555 >>> (XEN) L2[0x000] = 000000013bfee063 5555555555555555 >>> (XEN) L1[0x000] = 0000000000000000 ffffffffffffffff (XEN) >>> (XEN) **************************************** >>> (XEN) Panic on CPU 0: >>> (XEN) FATAL PAGE FAULT >>> (XEN) [error_code=0000] >>> (XEN) Faulting linear address: 0000000000000044 >>> (XEN) **************************************** >>> (XEN) >>> (XEN) Reboot in five seconds... >>> (XEN) Resetting with ACPI MEMORY or I/O RESET_REG. >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@xxxxxxxxxxxxxxxxxxx >>> http://lists.xensource.com/xen-devel >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@xxxxxxxxxxxxxxxxxxx >> http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |