Re: [PATCH 15/24] kvm: mmu: Wrap mmu_lock cond_resched and needbreak

From: Paolo Bonzini
Date: Thu Jan 28 2021 - 03:20:10 EST


On 27/01/21 22:20, Ben Gardon wrote:
On Wed, Jan 27, 2021 at 12:55 PM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:

On 27/01/21 21:08, Ben Gardon wrote:
I'm not entirely sure I understand this suggestion. Are you suggesting
we'd have the spinlock and rwlock in a union in struct kvm but then
use a static define to choose which one is used by other functions? It
seems like if we're using static defines the union doesn't add value.

Of course you're right. You'd just place the #ifdef in the struct kvm
definition.

Ah okay, thanks for clarifying.


You can place static inline functions for lock/unlock in
virt/kvm/mmu_lock.h, in order to avoid a proliferation of #ifdefs.

Would you prefer to make that change in this series or at a later
date? I'm assuming this would replace all the wrapper functions and
mean that x86 is rwlock only.

Yes, exactly. I would like to make tdp_mmu=1 the default as soon as parallel page faults are in (and thus scalability should be on par with the shadow MMU).

Paolo