On Fri, Aug 05, 2011 at 12:30:53PM -0300, Marcelo Tosatti wrote: > On Fri, Aug 05, 2011 at 08:16:42AM +0200, Jan Kiszka wrote: > > On 2011-08-05 06:02, David Gibson wrote: > > > At present, an explicit test disallows use of -mem-path when kvm is > > > enabled > > > but KVM_CAP_SYNC_MMU is not set. In particular, this prevents the user > > > from using hugetlbfs to back the guest memory. > > > > > > I can see no reason for this check, and when I asked about it previously, > > > the only theory offered was that this was a limitation of the very early > > > days of kvm which only happened to match the SYNC_MMU flag by accident. > > > > > > This patch, therefore, removes the check. This is of particular use to > > > us on POWER, where we haven't yet implement SYNC_MMU, but where backing > > > the guest with hugepages is possible, and in fact mandatory (for now). > > > > > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > > > --- > > > exec.c | 5 ----- > > > 1 files changed, 0 insertions(+), 5 deletions(-) > > > > > > diff --git a/exec.c b/exec.c > > > index 476b507..041637c 100644 > > > --- a/exec.c > > > +++ b/exec.c > > > @@ -2818,11 +2818,6 @@ static void *file_ram_alloc(RAMBlock *block, > > > return NULL; > > > } > > > > > > - if (kvm_enabled() && !kvm_has_sync_mmu()) { > > > - fprintf(stderr, "host lacks kvm mmu notifiers, -mem-path > > > unsupported\n"); > > > - return NULL; > > > - } > > > - > > > if (asprintf(&filename, "%s/qemu_back_mem.XXXXXX", path) == -1) { > > > return NULL; > > > } > > > > This is nothing trivial, see ce9a92411d in qemu-kvm or > > http://thread.gmane.org/gmane.comp.emulators.kvm.devel/27380. And it > > should rather target uq/master. CCing Avi, Marcelo, and the kvm list. > > > > Jan
Well, sending the patch flushed out the real reason for that check, at least, as I thought it might. > Yes, the check cannot be removed because there is the possibility of > corruption using hugepages without mmu notifiers (described in the > archived message above). Ok, so. If I understand the archived message correctly. First, this check *is* all about hugepages - which is not obvious from the test itself. Second, if userspace qemu passing hugepages to kvm can cause (host) kernel memory corruption, that is clearly a host kernel bug. So am I correct in thinking this is basically just a safety feature if qemu is run on a buggy kernel. Presumably this bug was corrected at some point? Is the presence of the SYNC_MMU feature just being used as a proxy for "is this kernel recent enough to have the corruption bug fixed"? In any case this test sure as hell needs a big comment next to it explaining this context. > Why are mmu notifiers not implemented for PPC again? It's just not done yet; we're working on it. (That is, mmu notifiers are certainly present on PPC, it's just they're not wired up to kvm, yet). -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson