Message ID | 20200331194011.24834-4-vgoyal@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kvm,x86,async_pf: Add capability to return page fault error | expand |
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 42d17e8c0135..97753a648133 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -336,9 +336,7 @@ static void kvm_guest_cpu_init(void) if (kvm_para_has_feature(KVM_FEATURE_ASYNC_PF) && kvmapf) { u64 pa = slow_virt_to_phys(this_cpu_ptr(&apf_reason)); -#ifdef CONFIG_PREEMPTION pa |= KVM_ASYNC_PF_SEND_ALWAYS; -#endif pa |= KVM_ASYNC_PF_ENABLED; if (kvm_para_has_feature(KVM_FEATURE_ASYNC_PF_VMEXIT))
Right now, we seem to get async pf related notifications only if guest is in user mode, or if it is in kernel mode and CONFIG_PREEMPTION is enabled. I think idea is that if CONFIG_PREEMPTION is enabled then it gives us opportunity to schedule something else if page is not ready. If KVM_ASYNC_PF_SEND_ALWAYS is not set, then host will not send notifications of PAGE_NOT_PRESENT/PAGE_READY. Instead once page has been installed guest will run. Now we are adding capability to report errors as part of async pf protocol. That means we need async pf related notifications so that we can make a task wait and when error is reported, we can either send SIGBUS to user process or search through exception tables for possible error handler. Hence enable async pf notifications always. Not sure if this will have noticieable performance implication though. Signed-off-by: Vivek Goyal <vgoyal@redhat.com> --- arch/x86/kernel/kvm.c | 2 -- 1 file changed, 2 deletions(-)