| 
         
xen-devel
RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices
 
| 
To:  | 
"Espen Skoglund" <espen.skoglund@xxxxxxxxxxxxx>,	"Han, Weidong" <weidong.han@xxxxxxxxx> | 
 
| 
Subject:  | 
RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices | 
 
| 
From:  | 
"Tian, Kevin" <kevin.tian@xxxxxxxxx> | 
 
| 
Date:  | 
Thu, 24 Jul 2008 22:47:34 +0800 | 
 
| 
Cc:  | 
joshua.levasseur@xxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, "Li,	Xin B" <xin.b.li@xxxxxxxxx>,	Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, "Jiang,	Yunhong" <yunhong.jiang@xxxxxxxxx> | 
 
| 
Delivery-date:  | 
Thu, 24 Jul 2008 07:50:10 -0700 | 
 
| 
Envelope-to:  | 
www-data@xxxxxxxxxxxxxxxxxxx | 
 
| 
In-reply-to:  | 
<18568.36563.318369.254235@xxxxxxxxxxxxxxxxxx> | 
 
| 
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:  | 
<D470B4E54465E3469E2ABBC5AFAC390F024D95D6@xxxxxxxxxxxxxxxxxxxxxxxxxxxx><C4AE001B.1B835%keir.fraser@xxxxxxxxxxxxx><0122C7C995D32147B66BF4F440D30163016B6CB9@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>	<18568.36563.318369.254235@xxxxxxxxxxxxxxxxxx> | 
 
| 
Sender:  | 
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx | 
 
| 
Thread-index:  | 
AcjtmARJjw0BW3l3SeOiYAS/4dkPkAAA2+0g | 
 
| 
Thread-topic:  | 
[Xen-devel] Dom0 hypercall for adding and removing PCI devices | 
 
 
 
I took a look, and it seems that spec does say so:
----
Modifying Root and Context Entries
When DMA-remapping hardware is active:
* Software must serially invalidate the context-cache and the 
IOTLB when updating root-entries or context-entries. The 
serialization is required since hardware may utilize information 
from the context-caches to tag new entries inserted to the 
IOTLB while processing in-flight DMA requests.
* Software must not modify fields other than the Present (P) 
field of currently present root-entries or context-entries. If 
modifications to other fields are required, software must first 
make these entries not-present (P=0), which requires serial 
invalidation of context-cache and IOTLB, and then transition 
them to present (P=1) state along with the modifications. 
----
I guess RMRR mapping may be OK even by voilating the 
spec, since even stale entry is used which serves same.
But since spec explicitly states it, I agree with Keir that
current solution is easiest.
For normal device re-assignment, that's why some reset
action is required before re-assignment, like FLR, etc. as
discussed in other thread from Dexuan.
Thanks,
Kevin
>From: Espen Skoglund
>Sent: 2008年7月24日 22:17
>
>Except, the RMRR mappings should be the same in both the old and the
>new VT-d tables.  The fields in the page tables would not change ---
>only the context entry (and the location of the VT-d page tables).
>
>I haven't got the VT-d spec in front of me, but the quote below seems
>to suggest that one can not directly reassign a device to another
>domain.  One would first have to mark it as non present in the context
>table before reassigning it.  Can someone from Intel confirm whether
>this is the case or not?
>
>       eSk
>
>
>
>[Weidong Han]
>> VT-d spec says: Software must not modify fields other than the
>> Present (P) field of currently present root-entries or
>> context-entries. If modifications to other fields are required,
>> software must first make these entries not-present (P=0), which
>> requires serial invalidation of context-cache and IOTLB, and then
>> transition them to present (P=1) state along with the modifications.
>> 
>> So your suggestion is not feasible.
>> 
>> Randy (Weidong)
>> 
>> Keir Fraser wrote:
>>> Exactly my thought.
>>>
>>>  K.
>>>
>>> On 24/7/08 09:43, "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote:
>>>
>>>> Isn't enough to first switch VT-d page table, and then flush IOTLB?
>>>> As long as RMRRs are kept same in two VT-d tables, and in any
>>>> time a valid entry (either in IOTLB or by walking) can be found,
>>>> above sequence seems complete.
>
>_______________________________________________
>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
 
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- Re: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, (continued)
- Re: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Espen Skoglund
 - Message not available
 - RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Han, Weidong
 - Re: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Keir Fraser
 - RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Han, Weidong
 - Re: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Keir Fraser
 - RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Tian, Kevin
 - Re: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Keir Fraser
 - RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Han, Weidong
 - Re: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Keir Fraser
 
- RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices, Espen Skoglund
 - RE: [Xen-devel] Dom0 hypercall for adding and removing PCI devices,
Tian, Kevin <=
 
    
 
 |  
  
 | 
    |