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

Paolo Bonzini
2014-10-21T08:11:43Z

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