[libvirt] Re: [PATCH] Add huge page support to libvirt, v2..

Mark McLoughlin markmc at redhat.com
Tue Jul 28 09:55:58 UTC 2009


On Mon, 2009-07-27 at 22:55 +0100, Daniel P. Berrange wrote:
> On Thu, Jul 23, 2009 at 09:00:18PM -0400, john cooper wrote:
> > I've incorporated feedback received on the
> > prior version into the patch below.
> > 
> > The host mount point for hugetlbfs is queried by
> > default from /proc/mounts unless overridden in
> > qemu.conf via:
> > 
> >     hugepage_mount = "<path_to_mount_point>"
> > 
> > This should make the concern of establishing
> > a mount point path convention a non-issue for
> > the general case while still allowing the same
> > to be deterministically set if needed.
> 
> In light of what Chris said about extended attribute support
> for SELinux I think we, sadly, have no choice by to mount
> a new instance of hugetlbfs per VM, labelled with the context
> of that VM.

I haven't played with hugetlbfs much, so let me make sure I understand
the issue:

  -) With --mempath, qemu creates a file under the supplied directory 
     and mmap()s it, using the mapped region for guest memory

  -) Because the directory is under hugetlbfs, that memory is huge page 
     backed

  -) Guest memory can be read by reading this file

  -) The file is owned by the uid of the qemu process, so any other 
     processes with that uid can access guest memory

  -) If we could label the file, we could use policy to prevent qemu 
     processes from accessing each other's files

  -) We can't, so the alternative is to use a separate hugetlbfs mount 
     for each guest, each with a different label - each mount will only 
     contain the file for that guest, and only be accessible by that 
     guest

Cheers,
Mark.




More information about the libvir-list mailing list