This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] [PATCH] Fixing ATS enabling for device assignment

To: <weidong.han@xxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Fixing ATS enabling for device assignment
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Wed, 19 May 2010 10:21:12 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, keir.fraser@xxxxxxxxxxxxx
Delivery-date: Wed, 19 May 2010 02:22:11 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> Weidong Han  05/19/10 11:12 AM >>>
>Jan Beulich wrote:
>>>>> "Han, Weidong"  05/19/10 4:37 AM >>>
>>> Currently, Xen only enables ATS in Xen booting. When a ATS capable device 
>>> is assigned to guest, ATS is actually not enabled because FLR before 
>>> assignment causes it to be disabled. Thus ATS cannot be used in guest. This 
>>> patch enables ATS in domain_context_mapping. This ensures ATS is enabled in 
>>> assignment because FLR is earlier than domain_context_mapping call. 
>>> Therefore ATS can be used in guest. This patch also implements 
>>> disable_ats_device to disable ATS when the device is deassigned from a 
>>> domain.
>> Hmm, this looks inconsistent to me: Iirc FLR is being done from the tools, 
>> so unless it is technically impossible to do FLR after 
>> domain_context_mapping(), the patch creates a hypervisor dependency on the 
>> tools (if nothing else, a latent bug - to be introduced the moment operation 
>> ordering changes in the tools).
>It doesn't depend on FLR from tools. It just ensures ATS is enabled for 
>device assignment in guest. If ATS is already enabled, enable_ats_device 
>won't re-enable it.

Perhaps I didn't express my concern properly: It's not really the hypervisor 
depending on anything done by the tools, but the code you ad to the hypervisor 
will trun out pointless if the tools move FLR past the point where 
domain_context_mapping() gets executed. It would seem more clean to me if e.g. 
the tools re-enabled ATS after doing FLR if it was enabled before.

>> Further, if ATS gets enabled at boot time, why would you want to disable it 
>> after de-assignment?
>ATS enabled devices will be added to ats_devices list. disabling ATS 
>will remove a device from that list and avoid leak. If ATS is enabled on 
>a VF, and it's destroyed by removing PF driver, disable_ats_device will 
>be invoked to remove it from the list.

That's fine, but doesn't answer my question.


Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>