Skip to contentSkip to conversation

KVM: async_pf: drop kvm_arch_async_page_present wrappers

PATCH linmiaohe 1 participant 1 message Jan 22, 2020 KVM

lore
Share & tools
lore

linmiaohe

author Reviewed-by
#0 lore raw

Hi:

Quoted 15 lines · Paolo Bonzini

The wrappers make it less clear that the position of the call to kvm_arch_async_page_present depends on the architecture, and that only one of the two call sites will actually be active. Remove them.

Cc Andy Lutomirski <[email protected]>
Cc Christian Borntraeger <[email protected]>

---
virt/kvm/async_pf.c | 21 ++++-----------------

1 file changed, 4 insertions(+), 17 deletions(-)
(quoted diff) +0 -5
-static inline void kvm_async_page_present_sync(struct kvm_vcpu *vcpu,
-					       struct kvm_async_pf *work)
-{
-#ifdef CONFIG_KVM_ASYNC_PF_SYNC
-	kvm_arch_async_page_present(vcpu, work);

Review

Quoted 10 lines
(quoted diff) +0 -10
-#endif
-}
-static inline void kvm_async_page_present_async(struct kvm_vcpu *vcpu,
-						struct kvm_async_pf *work)
-{
-#ifndef CONFIG_KVM_ASYNC_PF_SYNC
-	kvm_arch_async_page_present(vcpu, work);
-#endif
-}
-

Actually, these two functions took me some minutes to note the difference between them. I thought they do the same thing and really confused me ... :)

Quoted 20 lines

static struct kmem_cache *async_pf_cache;

int kvm_async_pf_init(void)

(quoted diff) +2 -1
@@ -80,7 +65,8 @@ static void async_pf_execute(struct work_struct *work)
 	if (locked)
 		up_read(&mm->mmap_sem);
 
-	kvm_async_page_present_sync(vcpu, apf);
+	if (IS_ENABLED(CONFIG_KVM_ASYNC_PF_SYNC))
+		kvm_arch_async_page_present(vcpu, apf);
 
 	spin_lock(&vcpu->async_pf.lock);
 	list_add_tail(&apf->link, &vcpu->async_pf.done); @@ -157,7 +143,8 @@ void kvm_check_async_pf_completion(struct kvm_vcpu *vcpu)
		spin_unlock(&vcpu->async_pf.lock);

		kvm_arch_async_page_ready(vcpu, work);
(quoted diff) +2 -1
-		kvm_async_page_present_async(vcpu, work);
+		if (!IS_ENABLED(CONFIG_KVM_ASYNC_PF_SYNC))
+			kvm_arch_async_page_present(vcpu, work);
Quoted 4 lines
		list_del(&work->queue);
		vcpu->async_pf.queued--;

--
1.8.3.1

This patch really helps. Thanks!