On Wed, Apr 29, 2020 at 12:53:33PM +0200, Paolo Bonzini wrote:
> On 29/04/20 11:36, Vitaly Kuznetsov wrote:
> > +
> > +   if (__this_cpu_read(apf_reason.enabled)) {
> > +           reason = __this_cpu_read(apf_reason.reason);
> > +           if (reason == KVM_PV_REASON_PAGE_READY) {
> > +                   token = __this_cpu_read(apf_reason.token);
> > +                   /*
> > +                    * Make sure we read 'token' before we reset
> > +                    * 'reason' or it can get lost.
> > +                    */
> > +                   mb();
> > +                   __this_cpu_write(apf_reason.reason, 0);
> > +                   kvm_async_pf_task_wake(token);
> > +           }
> 
> If tokens cannot be zero, could we avoid using reason for the page ready
> interrupt (and ultimately retire "reason" completely)?

If we are planning to report errors using this interface, then retaining
KVM_PV_REASON_PAGE_READY makes sense because we can then introduce another
state say KVM_PV_REASON_PAGE_ERROR.

Thanks
Vivek

Reply via email to