Message ID | 20250305104925.189198-1-vschneid@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | arm64: enable PREEMPT_LAZY | expand |
On 2025-03-05 11:49:25 [+0100], Valentin Schneider wrote: > From: Mark Rutland <mark.rutland@arm.com> > > For an architecture to enable CONFIG_ARCH_HAS_RESCHED_LAZY, two things are > required: > 1) Adding a TIF_NEED_RESCHED_LAZY flag definition > 2) Checking for TIF_NEED_RESCHED_LAZY in the appropriate locations > > 2) is handled in a generic manner by CONFIG_GENERIC_ENTRY, which isn't > (yet) implemented for arm64. However, outside of core scheduler code, > TIF_NEED_RESCHED_LAZY only needs to be checked on a kernel exit, meaning: > o return/entry to userspace. > o return/entry to guest. > > The return/entry to a guest is all handled by xfer_to_guest_mode_handle_work() > which already does the right thing, so it can be left as-is. > > arm64 doesn't use common entry's exit_to_user_mode_prepare(), so update its > return to user path to check for TIF_NEED_RESCHED_LAZY and call into > schedule() accordingly. > > Link: https://lore.kernel.org/linux-rt-users/20241216190451.1c61977c@mordecai.tesarici.cz/ > Link: https://lore.kernel.org/all/xhsmh4j0fl0p3.mognet@vschneid-thinkpadt14sgen2i.remote.csb/ > Signed-off-by: Mark Rutland <mark.rutland@arm.com> > [testdrive, _TIF_WORK_MASK fixlet and changelog.] > Signed-off-by: Mike Galbraith <efault@gmx.de> > [Another round of testing; changelog faff] > Signed-off-by: Valentin Schneider <vschneid@redhat.com> I somehow assumed it was already merged. For what it is worth, this looks like patch Mike posted in https://lore.kernel.org/a198a7dd9076f97b89d8882bb249b3bf303564ef.camel@gmx.de and tested Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Sebastian
On Wed, Mar 05, 2025 at 11:49:24AM +0100 Valentin Schneider wrote: > Hey folks, > > This is a resubmission of Mark's patch [1]. I didn't end up changing anything > other than fluffing up the changelog. > > I ran this under an arm64 VM, added some trace_printk's and checked that > sched_switch's between runnable hackbench threads would occurr in the right > conditions: > o with TIF_NEED_RESCHED_LAZY set > o at the tick > o at do_notify_resume() > o with TIF_NEED_RESCHED set > > [1]: https://lore.kernel.org/linux-rt-users/Z2B5y3HiLuRHPfdv@J2N7QTR9R3.cambridge.arm.com/ > Thanks! I was looking for this the other day :) Cheers, Phil > Cheers, > Valentin > > Mark Rutland (1): > arm64: enable PREEMPT_LAZY > > arch/arm64/Kconfig | 1 + > arch/arm64/include/asm/thread_info.h | 16 +++++++++------- > arch/arm64/kernel/entry-common.c | 2 +- > 3 files changed, 11 insertions(+), 8 deletions(-) > > -- > 2.43.0 > --