|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] question on iommu _map_page
On 02/07/2010 08:13, "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx> wrote:
>> I finally found some time to test your patch. While it seems to fix the
>> problem, it *significantly* degrades performance.
>> On running netperf, there is a 10X reduction in throughput to a guest VM. On
>> profiling, I find a significant number of cycles
>> being spent in mapcount(). In the current solution, the entire grant table is
>> searched every time (right ?). The mapping info
>> ought to be stored in some per-page location... for efficient access.
>
> It needs to be a per-mapping-domain location. Like the VT-d pte itself.
> Patches welcome.
Scrub that. It would be better to allocate a chunk of otherwised unused
machine address space (e.g., 1GB starting at max(4GB, top_of_ram)), and
allocate each grant entry that needs an iommu mapping a page in that range,
map at that address and return that address as dev_bus_addr from the
grant-map hypercall. Then we would have no IOMMU pte sharing between grants,
and no need for any extra reference counting. Also it would be easy to batch
iommu flushes in this scenario, if you don't care about finished-with grant
mappings being flushed a bit lazily.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|