* [PATCH] KVM MMU: check pending exception before injecting APF
@ 2018-02-09 17:00 Paolo Bonzini
2018-02-09 17:17 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Paolo Bonzini @ 2018-02-09 17:00 UTC (permalink / raw)
To: stable; +Cc: nikola.ciprich, Haozhong Zhang
From: Haozhong Zhang <haozhong.zhang@intel.com>
[ upstream commit 2a266f23550be997d783f27e704b9b40c4010292 Mon Sep 17 00:00:00 2001 ]
For example, when two APF's for page ready happen after one exit and
the first one becomes pending, the second one will result in #DF.
Instead, just handle the second page fault synchronously.
Reported-by: Ross Zwisler <zwisler@gmail.com>
Message-ID: <CAOxpaSUBf8QoOZQ1p4KfUp0jq76OKfGY4Uxs-Gg8ngReD99xww@mail.gmail.com>
Reported-by: Alec Blayne <ab@tevsa.net>
Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
Fixes: 664f8e26b00c7673a8303b0d40853a0c24ca93e1
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
arch/x86/kvm/mmu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index c4deb1f34faa..e577bacd4bd0 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -3781,7 +3781,8 @@ static int kvm_arch_setup_async_pf(struct kvm_vcpu *vcpu, gva_t gva, gfn_t gfn)
bool kvm_can_do_async_pf(struct kvm_vcpu *vcpu)
{
if (unlikely(!lapic_in_kernel(vcpu) ||
- kvm_event_needs_reinjection(vcpu)))
+ kvm_event_needs_reinjection(vcpu) ||
+ vcpu->arch.exception.pending))
return false;
if (!vcpu->arch.apf.delivery_as_pf_vmexit && is_guest_mode(vcpu))
--
1.8.3.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] KVM MMU: check pending exception before injecting APF
2018-02-09 17:00 [PATCH] KVM MMU: check pending exception before injecting APF Paolo Bonzini
@ 2018-02-09 17:17 ` Greg KH
2018-02-09 17:21 ` Paolo Bonzini
0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2018-02-09 17:17 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: stable, nikola.ciprich, Haozhong Zhang
On Fri, Feb 09, 2018 at 06:00:42PM +0100, Paolo Bonzini wrote:
> From: Haozhong Zhang <haozhong.zhang@intel.com>
>
> [ upstream commit 2a266f23550be997d783f27e704b9b40c4010292 Mon Sep 17 00:00:00 2001 ]
Odd date :)
>
> For example, when two APF's for page ready happen after one exit and
> the first one becomes pending, the second one will result in #DF.
> Instead, just handle the second page fault synchronously.
>
> Reported-by: Ross Zwisler <zwisler@gmail.com>
> Message-ID: <CAOxpaSUBf8QoOZQ1p4KfUp0jq76OKfGY4Uxs-Gg8ngReD99xww@mail.gmail.com>
> Reported-by: Alec Blayne <ab@tevsa.net>
> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
> Fixes: 664f8e26b00c7673a8303b0d40853a0c24ca93e1
So this is only needed for 4.14.y?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] KVM MMU: check pending exception before injecting APF
2018-02-09 17:17 ` Greg KH
@ 2018-02-09 17:21 ` Paolo Bonzini
2018-02-09 17:44 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Paolo Bonzini @ 2018-02-09 17:21 UTC (permalink / raw)
To: Greg KH; +Cc: stable, nikola.ciprich, Haozhong Zhang
On 09/02/2018 18:17, Greg KH wrote:
> On Fri, Feb 09, 2018 at 06:00:42PM +0100, Paolo Bonzini wrote:
>> From: Haozhong Zhang <haozhong.zhang@intel.com>
>>
>> [ upstream commit 2a266f23550be997d783f27e704b9b40c4010292 Mon Sep 17 00:00:00 2001 ]
>
> Odd date :)
Oops... git's fake mbox "From" line.
>>
>> For example, when two APF's for page ready happen after one exit and
>> the first one becomes pending, the second one will result in #DF.
>> Instead, just handle the second page fault synchronously.
>>
>> Reported-by: Ross Zwisler <zwisler@gmail.com>
>> Message-ID: <CAOxpaSUBf8QoOZQ1p4KfUp0jq76OKfGY4Uxs-Gg8ngReD99xww@mail.gmail.com>
>> Reported-by: Alec Blayne <ab@tevsa.net>
>> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
>> Fixes: 664f8e26b00c7673a8303b0d40853a0c24ca93e1
>
> So this is only needed for 4.14.y?
Yes. 4.13 and 4.15 both work.
Paolo
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] KVM MMU: check pending exception before injecting APF
2018-02-09 17:21 ` Paolo Bonzini
@ 2018-02-09 17:44 ` Greg KH
0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2018-02-09 17:44 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: stable, nikola.ciprich, Haozhong Zhang
On Fri, Feb 09, 2018 at 06:21:13PM +0100, Paolo Bonzini wrote:
> On 09/02/2018 18:17, Greg KH wrote:
> > On Fri, Feb 09, 2018 at 06:00:42PM +0100, Paolo Bonzini wrote:
> >> From: Haozhong Zhang <haozhong.zhang@intel.com>
> >>
> >> [ upstream commit 2a266f23550be997d783f27e704b9b40c4010292 Mon Sep 17 00:00:00 2001 ]
> >
> > Odd date :)
>
> Oops... git's fake mbox "From" line.
Yeah, I guessed, odd it showed up here...
> >> For example, when two APF's for page ready happen after one exit and
> >> the first one becomes pending, the second one will result in #DF.
> >> Instead, just handle the second page fault synchronously.
> >>
> >> Reported-by: Ross Zwisler <zwisler@gmail.com>
> >> Message-ID: <CAOxpaSUBf8QoOZQ1p4KfUp0jq76OKfGY4Uxs-Gg8ngReD99xww@mail.gmail.com>
> >> Reported-by: Alec Blayne <ab@tevsa.net>
> >> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
> >> Fixes: 664f8e26b00c7673a8303b0d40853a0c24ca93e1
> >
> > So this is only needed for 4.14.y?
>
> Yes. 4.13 and 4.15 both work.
Wonderful, I'll queue this up after this round of kernels are released
in a few days.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-02-09 17:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-09 17:00 [PATCH] KVM MMU: check pending exception before injecting APF Paolo Bonzini
2018-02-09 17:17 ` Greg KH
2018-02-09 17:21 ` Paolo Bonzini
2018-02-09 17:44 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox