Re: [PATCH 2/4] mm: introduce new VM_NOZEROPAGE flag

From: Paolo Bonzini
Date: Tue Oct 21 2014 - 04:13:02 EST




On 10/21/2014 08:11 AM, Martin Schwidefsky wrote:
I agree with Dave (I thought I disagreed, but I changed my mind while
writing down my thoughts). Just define mm_forbids_zeropage in
arch/s390/include/asm, and make it return mm->context.use_skey---with a
comment explaining how this is only for processes that use KVM, and then
only for guests that use storage keys.

The mm_forbids_zeropage() sure will work for now, but I think a vma flag
is the better solution. This is analog to VM_MERGEABLE or VM_NOHUGEPAGE,
the best solution would be to only mark those vmas that are mapped to
the guest. That we have not found a way to do that yet in a sensible way
does not change the fact that "no-zero-page" is a per-vma property, no?

I agree it should be per-VMA. However, right now the code is complicated unnecessarily by making it a per-VMA flag. Also, setting the flag per VMA should probably be done in kvm_arch_prepare_memory_region together with some kind of storage key notifier. This is not very much like Dominik's patch. All in all, mm_forbids_zeropage() provides a non-intrusive and non-controversial way to fix the bug. Later on, switching to vma_forbids_zeropage() will be trivial as far as mm/ code is concerned.

But if you insist we go with the mm_forbids_zeropage() until we find a
clever way to distinguish the guest vmas from the qemu ones.

Yeah, I think it is simpler for now.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/