Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [patch V5 15/15] x86/kvm: Use generic xfer to guest work function | Date | Fri, 24 Jul 2020 21:08:34 +0200 |
| |
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
| |