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

Re: [Xen-devel] support for sharing huge pages with grant table?

On Mon, Nov 17, 2014 at 5:34 AM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
On Sun, 2014-11-16 at 23:39 -0500, Tim Wood wrote:
> Hi,
> I am curious if Xen currently supports sharing hugepages between
> domains (specifically ones originally allocated in Dom-0 and shared
> with a guest r/w). I've seen some references to huge pages in the
> archives of this list, but not in relation to the grant mechanism.

I don't think the grant table has any specific superpage support. It
might be an interesting extension to consider though (for the sorts of
reasons you would like it).

You could grant a superpage using multiple 4K grants to cover whichever
subset of the superpage you need to expose to the other end. Now granted
(no pun intended ;-)) that might suck up 512 grefs in the worst case,
which is a bit mad...

If the grants just need to be setup once at system startup and then are never changed, is this likely to pose any particular problem (i.e., does the size of the grant table only affect things when new grants are being setup, or is it checked regularly at runtime)?

> Also, can someone confirm that "superpages" are another term for "huge
> pages" in Xen?

Yes. Or at least I think so.

> This would be helpful for some work we are doing on high speed
> networking to VMs---DPDK stores packets into huge pages and we'd like
> to get those to VMs as quickly as possible.

This seems like a reasonable usecase to me. Having added this to the
grant table interface I suppose you would also need to consider
extensions to the individual PV I/O protocols (netif.h) to allow them to
signal when a grant was huge. You might have issues with e.g. finding
enough bits to represent the larger sizes...

I hope you guys will think it is useful enough to someday implement it.. I've got a handful of undergrad and grad students who work with me, but this might be beyond our capabilities at this point ;)

In our prior system, we did this on KVM. In that case we used QEMU to define a virtual PCI device that mapped memory from the host OS and let it be accessed by a VM. Any thoughts on whether the same approach would work with Xen? I'd originally thought just using the grant table to enable sharing would make this a lot easier in Xen, but maybe not since it doesn't support huge pages.


Xen-devel mailing list



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