[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] question on iommu _map_page



On May 27, 2010, at 3:46 PM, Keir Fraser wrote:

> It looks like the person who implemented that never needed the read-only
> case. We need a function to map pages into the iommu read-only and to call
> that from the grant code.
> 
> A patch to just call iommu_map_page() for any kind of grant mapping would be
> acceptable for now, if you want to submit a patch.

OK. Attached.

Signed-off-by: Kaushik Kumar Ram <kaushik@xxxxxxxx>

diff -r 26c2922da53c xen/common/grant_table.c
--- a/xen/common/grant_table.c  Thu May 27 09:39:47 2010 +0100
+++ b/xen/common/grant_table.c  Thu May 27 15:56:37 2010 -0500
@@ -596,9 +596,7 @@ __gnttab_map_grant_ref(
         goto undo_out;
     }
 
-    if ( (!is_hvm_domain(ld) && need_iommu(ld)) &&
-         !(old_pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) &&
-         (act_pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) )
+    if ( !is_hvm_domain(ld) && need_iommu(ld))
     {
         /* Shouldn't happen, because you can't use iommu in a HVM
          * domain. */
@@ -779,9 +777,7 @@ __gnttab_unmap_common(
             act->pin -= GNTPIN_hstw_inc;
     }
 
-    if ( (!is_hvm_domain(ld) && need_iommu(ld)) &&
-         (old_pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) &&
-         !(act->pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) )
+    if ( !is_hvm_domain(ld) && need_iommu(ld))
     {
         BUG_ON(paging_mode_translate(ld));
         if ( iommu_unmap_page(ld, op->frame) )

-Kaushik 

> On 27/05/2010 21:37, "Kaushik Kumar Ram" <kaushik@xxxxxxxx> wrote:
> 
>> Hi all,
>> 
>> I am trying to use the VT-d support with a PV driver domain which performs
>> network I/O on behalf of guest domains.
>> When I initiate any network I/O it results in I/O page faults. On taking a
>> closer look I find that iommu_map_page() is called only for writable pages
>> from __gnttab_map_grant_ref(). This results in page faults during packet
>> transmission since pages are mapped read-only in this case.
>> When I remove this restriction, I can get it working without any page faults.
>> 
>> Is this a bug? or am I missing something here? I am using the latest unstable
>> version of Xen. This part of the source code hasn't changed in a long time.
>> 
>> Thanks!
>> -Kaushik
>> _______________________________________________
>> 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.