2024-02-13 05:57:08

by Ankur Arora

[permalink] [raw]
Subject: [PATCH 06/30] entry: handle lazy rescheduling at user-exit

The scheduling policy for TIF_NEED_RESCHED_LAZY is to allow the
running task to voluntarily schedule out, running it to completion.

For archs with GENERIC_ENTRY, do this by adding a check in
exit_to_user_mode_loop().

Cc: Peter Zijlstra <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Originally-by: Thomas Gleixner <[email protected]>
Link: https://lore.kernel.org/lkml/87jzshhexi.ffs@tglx/
Signed-off-by: Ankur Arora <[email protected]>
---
include/linux/entry-common.h | 2 +-
kernel/entry/common.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h
index b0fb775a600d..f5bb19369973 100644
--- a/include/linux/entry-common.h
+++ b/include/linux/entry-common.h
@@ -65,7 +65,7 @@
#define EXIT_TO_USER_MODE_WORK \
(_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
_TIF_NEED_RESCHED | _TIF_PATCH_PENDING | _TIF_NOTIFY_SIGNAL | \
- ARCH_EXIT_TO_USER_MODE_WORK)
+ _TIF_NEED_RESCHED_LAZY | ARCH_EXIT_TO_USER_MODE_WORK)

/**
* arch_enter_from_user_mode - Architecture specific sanity check for user mode regs
diff --git a/kernel/entry/common.c b/kernel/entry/common.c
index 88cb3c88aaa5..5c5befb05410 100644
--- a/kernel/entry/common.c
+++ b/kernel/entry/common.c
@@ -92,7 +92,7 @@ __always_inline unsigned long exit_to_user_mode_loop(struct pt_regs *regs,

local_irq_enable_exit_to_user(ti_work);

- if (ti_work & _TIF_NEED_RESCHED)
+ if (ti_work & (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY))
schedule();

if (ti_work & _TIF_UPROBE)
--
2.31.1



2024-02-19 15:42:00

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH 06/30] entry: handle lazy rescheduling at user-exit

On Mon, Feb 12 2024 at 21:55, Ankur Arora wrote:
> The scheduling policy for TIF_NEED_RESCHED_LAZY is to allow the
> running task to voluntarily schedule out, running it to completion.
>
> For archs with GENERIC_ENTRY, do this by adding a check in

Please write out architectures. This is not twatter.

> exit_to_user_mode_loop().

Thanks,

tglx

2024-02-20 22:39:17

by Ankur Arora

[permalink] [raw]
Subject: Re: [PATCH 06/30] entry: handle lazy rescheduling at user-exit


Thomas Gleixner <[email protected]> writes:

> On Mon, Feb 12 2024 at 21:55, Ankur Arora wrote:
>> The scheduling policy for TIF_NEED_RESCHED_LAZY is to allow the
>> running task to voluntarily schedule out, running it to completion.
>>
>> For archs with GENERIC_ENTRY, do this by adding a check in
>
> Please write out architectures. This is not twatter.

Thankfully not! Will fix (this and elsewhere).

>> exit_to_user_mode_loop().
>
> Thanks,
>
> tglx


--
ankur