|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
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
 
 |   
 
 | 
    | 
  
  
    |   | 
    |