Re: [RFC PATCH] Exporting Guest RAM information for NUMA binding

Avi Kivity
2011-11-21T18:03:16Z

On 11/21/2011 05:25 PM, Peter Zijlstra wrote:
> On Mon, 2011-11-21 at 20:48 +0530, Bharata B Rao wrote:
>
> > I looked at Peter's recent work in this area.
> > (https://lkml.org/lkml/2011/11/17/204)
> >
> > It introduces two interfaces:
> >
> > 1. ms_tbind() to bind a thread to a memsched(*) group
> > 2. ms_mbind() to bind a memory region to memsched group
> >
> > I assume the 2nd interface could be used by QEMU to create
> > memsched groups for each of guest NUMA node memory regions.
>
> No, you would need both, you'll need to group vcpu threads _and_ some
> vaddress space together.
>
> I understood QEMU currently uses a single big anonymous mmap() to
> allocate the guest memory, using this you could either use multiple or
> carve up the big alloc into virtual nodes by assigning different parts
> to different ms groups.
>
> Example: suppose you want to create a 2 node guest with 8 vcpus, create
> 2 ms groups, each with 4 vcpu threads and assign half the total guest
> mmap to either.
>

Does ms_mbind() require that its vmas in its area be completely
contained in the region, or does it split vmas on demand? I suggest the
latter to avoid exposing implementation details.

--
error compiling committee.c: too many arguments to function