All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Prakash Sangappa <prakash.sangappa@oracle.com>,
	linux-kernel@vger.kernel.org
Cc: peterz@infradead.org, rostedt@goodmis.org,
	mathieu.desnoyers@efficios.com, bigeasy@linutronix.de,
	kprateek.nayak@amd.com, vineethr@linux.ibm.com,
	prakash.sangappa@oracle.com
Subject: Re: [PATCH V7 02/11] sched: Indicate if thread got rescheduled
Date: Thu, 07 Aug 2025 15:06:12 +0200	[thread overview]
Message-ID: <87a54bcmd7.ffs@tglx> (raw)
In-Reply-To: <20250724161625.2360309-3-prakash.sangappa@oracle.com>

On Thu, Jul 24 2025 at 16:16, Prakash Sangappa wrote:

Indicate this to whom? Can you please write descriptive subject lines
which summarize the change in a way that is comprehensible?

> +void rseq_delay_resched_clear(struct task_struct *tsk)
> +{
> +	u32 flags;
> +
> +	if (tsk->rseq_delay_resched == RSEQ_RESCHED_DELAY_REQUESTED) {
> +		tsk->rseq_delay_resched = RSEQ_RESCHED_DELAY_PROBE;
> +		if (copy_from_user_nofault(&flags, &tsk->rseq->flags, sizeof(flags)))
> +                        return;
> +                flags |= RSEQ_CS_FLAG_RESCHEDULED;
> +                copy_to_user_nofault(&tsk->rseq->flags, &flags, sizeof(flags));
> +	}
> +}
>  #endif /* CONFIG_RSEQ_RESCHED_DELAY */
>  
>  #ifdef CONFIG_DEBUG_RSEQ
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index e75ecbb2c1f7..ba1e4f6981cd 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -6752,9 +6752,8 @@ static void __sched notrace __schedule(int sched_mode)
>  picked:
>  	clear_tsk_need_resched(prev);
>  	clear_preempt_need_resched();
> -	if (IS_ENABLED(CONFIG_RSEQ_RESCHED_DELAY) &&
> -	    prev->rseq_delay_resched == RSEQ_RESCHED_DELAY_REQUESTED)
> -		prev->rseq_delay_resched = RSEQ_RESCHED_DELAY_PROBE;
> +	if(IS_ENABLED(CONFIG_RSEQ_RESCHED_DELAY))
> +		rseq_delay_resched_clear(prev);

Yet another unconditional function call for the sake of something which
is only used by special applications. This is the scheduler hotpath and
not a dump ground for random functionality, which is even completely
redundant. Why redundant?

The kernel already handles in rseq, that a task was scheduled out:

    schedule()
       prepare_task_switch()
         rseq_preempt()

rseq_preempt() sets RSEQ_EVENT_PREEMPT_BIT and TIF_NOTIFY_RESUME, which
causes exit to userspace to invoke __rseq_handle_notify_resume(). That's
the obvious place to handle this instead of inflicting it into the
scheduler hotpath.

No?

Thanks,

        tglx

  reply	other threads:[~2025-08-07 13:06 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-24 16:16 [PATCH V7 00/11] Scheduler time slice extension Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 01/11] sched: " Prakash Sangappa
2025-08-06 20:34   ` Thomas Gleixner
2025-08-07 14:07     ` Thomas Gleixner
2025-08-07 16:45       ` Prakash Sangappa
2025-08-07 15:49     ` Sebastian Andrzej Siewior
2025-08-07 16:56       ` Prakash Sangappa
2025-08-08  9:59         ` Sebastian Andrzej Siewior
2025-08-08 17:00           ` Prakash Sangappa
2025-08-11  6:28             ` Sebastian Andrzej Siewior
2025-08-07 16:13     ` Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 02/11] sched: Indicate if thread got rescheduled Prakash Sangappa
2025-08-07 13:06   ` Thomas Gleixner [this message]
2025-08-07 16:15     ` Prakash Sangappa
2025-08-11  9:45       ` Thomas Gleixner
2025-08-13 16:19         ` bigeasy
2025-08-13 16:56           ` Thomas Gleixner
2025-08-18 13:16             ` bigeasy
2025-08-19  8:12               ` Thomas Gleixner
2025-08-14  7:18         ` Prakash Sangappa
2025-08-14 18:20           ` Thomas Gleixner
2025-07-24 16:16 ` [PATCH V7 03/11] sched: Tunable to specify duration of time slice extension Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 04/11] sched: Add scheduler stat for cpu " Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 05/11] sched: Add tracepoint for sched " Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 06/11] Add API to query supported rseq cs flags Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 07/11] sched: Add API to indicate not to delay scheduling Prakash Sangappa
2025-07-25 14:30   ` kernel test robot
2025-07-24 16:16 ` [PATCH V7 08/11] sched: Add TIF_NEED_RESCHED_NODELAY infrastructure Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 09/11] sched: Add nodelay scheduling Prakash Sangappa
2025-08-08 13:26   ` Thomas Gleixner
2025-08-08 16:54     ` Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 10/11] sched, x86: Enable " Prakash Sangappa
2025-07-24 16:16 ` [PATCH V7 11/11] sched: Add kernel parameter to enable delaying RT threads Prakash Sangappa
2025-07-25 15:52   ` kernel test robot
2025-08-06 16:03 ` [PATCH V7 00/11] Scheduler time slice extension Prakash Sangappa
2025-08-06 16:24   ` Thomas Gleixner
2025-08-06 16:30 ` Thomas Gleixner
2025-08-07  6:52   ` Prakash Sangappa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a54bcmd7.ffs@tglx \
    --to=tglx@linutronix.de \
    --cc=bigeasy@linutronix.de \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=peterz@infradead.org \
    --cc=prakash.sangappa@oracle.com \
    --cc=rostedt@goodmis.org \
    --cc=vineethr@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.