[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87k0ysu3wt.fsf@nanos.tec.linutronix.de>
Date: Fri, 24 Jul 2020 21:08:34 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: Ingo Molnar <mingo@...nel.org>
Cc: LKML <linux-kernel@...r.kernel.org>, x86@...nel.org,
linux-arch@...r.kernel.org, Will Deacon <will@...nel.org>,
Arnd Bergmann <arnd@...db.de>,
Mark Rutland <mark.rutland@....com>,
Kees Cook <keescook@...omium.org>,
Keno Fischer <keno@...iacomputing.com>,
Paolo Bonzini <pbonzini@...hat.com>, kvm@...r.kernel.org,
Gabriel Krisman Bertazi <krisman@...labora.com>,
Sean Christopherson <sean.j.christopherson@...el.com>
Subject: Re: [patch V5 15/15] x86/kvm: Use generic xfer to guest work function
Ingo Molnar <mingo@...nel.org> writes:
> * Thomas Gleixner <tglx@...utronix.de> wrote:
>> /*
>> - * Note, return 1 and not 0, vcpu_run() is responsible for
>> - * morphing the pending signal into the proper return code.
>> + * Note, return 1 and not 0, vcpu_run() will invoke
>> + * xfer_to_guest_mode() which will create a proper return
>> + * code.
>> */
>> - if (signal_pending(current))
>> + if (__xfer_to_guest_mode_work_pending())
>> return 1;
>> -
>> - if (need_resched())
>> - schedule();
>> }
>
> AFAICS this chunk removes a conditional reschedule point from
> handle_invalid_guest_state() and replaces it with
> __xfer_to_guest_mode_work_pending().
>
> But __xfer_to_guest_mode_work_pending() doesn't do the cond-resched of
> the full xfer_to_guest_mode_work() function - so we essentially lose a
> cond_resched() here.
>
> Is this side effect intended, was the cond_resched() superfluous?
It makes the thing drop back to the outer loop for any pending work not
only for signals. That avoids having yet another thing to worry about.
Thanks,
tglx
Powered by blists - more mailing lists