lkml.org 
[lkml]   [2020]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [patch V5 15/15] x86/kvm: Use generic xfer to guest work function
Date
Ingo Molnar <mingo@kernel.org> writes:
> * Thomas Gleixner <tglx@linutronix.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

\
 
 \ /
  Last update: 2020-07-24 21:08    [W:0.208 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site