Re: [PATCH 1/1] arm64: enable PREEMPT_LAZY

From: Thomas Gleixner
Date: Wed Mar 05 2025 - 07:48:47 EST


On Wed, Mar 05 2025 at 11:49, Valentin Schneider wrote:
> From: Mark Rutland <mark.rutland@xxxxxxx>
>
> 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@xxxxxxxxxxxxxxxxxxxx/
> Link: https://lore.kernel.org/all/xhsmh4j0fl0p3.mognet@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
> Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
> [testdrive, _TIF_WORK_MASK fixlet and changelog.]
> Signed-off-by: Mike Galbraith <efault@xxxxxx>
> [Another round of testing; changelog faff]
> Signed-off-by: Valentin Schneider <vschneid@xxxxxxxxxx>

Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>