|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] [PATCH] fix iommu interrupt setup
To: |
"Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx>, Alexia Benington <alexbenington@xxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Kay, Allen M" <allen.m.kay@xxxxxxxxx> |
Subject: |
RE: [Xen-devel] [PATCH] fix iommu interrupt setup |
From: |
"Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx> |
Date: |
Fri, 13 Feb 2009 09:09:25 +0800 |
Accept-language: |
en-US |
Acceptlanguage: |
en-US |
Cc: |
|
Delivery-date: |
Thu, 12 Feb 2009 17:09:52 -0800 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
In-reply-to: |
<E2263E4A5B2284449EEBD0AAB751098401C7969EB0@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<7k4oz09x7n.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxx> <57C9024A16AD2D4C97DC78E552063EA361705CE3@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <7969168f0902121456y41e42edds9550d96a15010417@xxxxxxxxxxxxxx> <E2263E4A5B2284449EEBD0AAB751098401C7969EA4@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <E2263E4A5B2284449EEBD0AAB751098401C7969EB0@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
Thread-index: |
AcmNZTyyXMcpbf9iQHOsHcL1FRB4hgAEBBcAAAA4mXAAAE6/4A== |
Thread-topic: |
[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
|
|
|
|
|