|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] Re: [XEN-IOMMU] Proposal of DMA protection/isolation	support
 
| 
To:  | 
Wei Wang2 <wei.wang2@xxxxxxx> | 
 
| 
Subject:  | 
[Xen-devel] Re: [XEN-IOMMU] Proposal of DMA protection/isolation	support | 
 
| 
From:  | 
Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> | 
 
| 
Date:  | 
Wed, 16 Jan 2008 18:25:59 +0000 | 
 
| 
Cc:  | 
muli@xxxxxxxxxx, "Dannowski, Uwe" <Uwe.Dannowski@xxxxxxx>, "Hohmuth,	Michael" <Michael.Hohmuth@xxxxxxx>, "Woller,	Thomas" <thomas.woller@xxxxxxx>,	iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx,	elsie.wahlig@xxxxxxx, amit.shah@xxxxxxxxxxxx | 
 
| 
Delivery-date:  | 
Wed, 16 Jan 2008 10:26:20 -0800 | 
 
| 
Envelope-to:  | 
www-data@xxxxxxxxxxxxxxxxxx | 
 
| 
In-reply-to:  | 
<1200503754.4026.108.camel@xxxxxxxxxxxx> | 
 
| 
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/cgi-bin/mailman/listinfo/xen-devel>,	<mailto:xen-devel-request@lists.xensource.com?subject=subscribe> | 
 
| 
List-unsubscribe:  | 
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>,	<mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> | 
 
| 
Sender:  | 
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx | 
 
| 
Thread-index:  | 
AchYbT20fA4yXsRgEdyOUgAWy6hiGQ== | 
 
| 
Thread-topic:  | 
[XEN-IOMMU] Proposal of DMA protection/isolation support | 
 
| 
User-agent:  | 
Microsoft-Entourage/11.3.6.070618 | 
 
 
 
On 16/1/08 17:15, "Wei Wang2" <wei.wang2@xxxxxxx> wrote:
>> Local pages could always be mapped into the iommu, and only remote pages
>> would need to be temporarily mapped via the gnttab hooks.
> I remembered that vtd patch used to hook page assignment to for this,
> but it was soon replaced with statical 1:1 mapping. Could you suggest me
> how to trace local page changes instead of mapping whole the physical
> ram?
alloc_domheap_pages() if you want to map MFNs. populate_physmap() if you
want to map PFNs. There might be a few other places to hook also but I
expect they're the main ones.
>> 2) When dma layer is invoked to prepare a bus address for native block
>>> device driver. It would be better to have a "hypervisor-aware" dma layer
>>> which always maps virtual address to bus address via hypercall.
>>> __gnttab_dma_map_page() might be a good place to trigger this new
>>> hypercall. Both remote and local pages can be mapped by this way.
>> 
>> An extra hypercall here will likely hurt performance.
> I have implemented a prototype for this which removes 1:1 mapping and invoke a
> hypercall for 
> dma mapping. Since block driver uses dma_map_sg heavily which is easy to
> batch, I have not seen dramatic performance loss.
It's hard to slow down block-device accesses. What does it do to CPU usage
and max bandwidth on a multi-gigabit NIC?
 -- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |