From: Juri Lelli <juri.lelli@redhat.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-kernel@vger.kernel.org, Ben Segall <bsegall@google.com>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Frederic Weisbecker <frederic@kernel.org>,
Ingo Molnar <mingo@redhat.com>, John Stultz <jstultz@google.com>,
Mel Gorman <mgorman@suse.de>,
Peter Zijlstra <peterz@infradead.org>,
Stephen Boyd <sboyd@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
Valentin Schneider <vschneid@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>
Subject: Re: [RFC PATCH 1/3] sched/core: Provide a method to check if a task is PI-boosted.
Date: Thu, 2 Nov 2023 10:30:50 +0100 [thread overview]
Message-ID: <ZUNsSqHiYu8WTHBb@localhost.localdomain> (raw)
In-Reply-To: <20230804113039.419794-2-bigeasy@linutronix.de>
Hi,
Apologies for noticing only now, but I believe this is still part of the
6.6-rt patches and I've got the below question to ask.
On 04/08/23 13:30, Sebastian Andrzej Siewior wrote:
> Provide a method to check if a task inherited the priority from another
> task. This happens if a task owns a lock which is requested by a task
> with higher priority. This can be used as a hint to add a preemption
> point to the critical section.
>
> Provide a function which reports true if the task is PI-boosted.
>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
> include/linux/sched.h | 1 +
> kernel/sched/core.c | 15 +++++++++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index 609bde814cb06..77fd274133750 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1887,6 +1887,7 @@ static inline int dl_task_check_affinity(struct task_struct *p, const struct cpu
> }
> #endif
>
> +extern bool task_is_pi_boosted(const struct task_struct *p);
> extern int yield_to(struct task_struct *p, bool preempt);
> extern void set_user_nice(struct task_struct *p, long nice);
> extern int task_prio(const struct task_struct *p);
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index c52c2eba7c739..132f06522efa0 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -8886,6 +8886,21 @@ static inline void preempt_dynamic_init(void) { }
>
> #endif /* #ifdef CONFIG_PREEMPT_DYNAMIC */
>
> +/*
> + * task_is_pi_boosted - Check if task has been PI boosted.
> + * @p: Task to check.
> + *
> + * Return true if task is subject to priority inheritance.
> + */
> +bool task_is_pi_boosted(const struct task_struct *p)
> +{
> + int prio = p->prio;
> +
> + if (!rt_prio(prio))
> + return false;
> + return prio != p->normal_prio;
Does this need to also take DEADLINE tasks into consideration? We don't
change priority when they are boosted, only pi_se changes (please check
is_dl_boosted()).
Thanks,
Juri
next prev parent reply other threads:[~2023-11-02 9:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-04 11:30 [RFC PATCH 0/3] Allow to preempt a timer softirq on PREEMPT_RT Sebastian Andrzej Siewior
2023-08-04 11:30 ` [RFC PATCH 1/3] sched/core: Provide a method to check if a task is PI-boosted Sebastian Andrzej Siewior
2023-11-02 9:30 ` Juri Lelli [this message]
2023-11-02 16:03 ` Sebastian Andrzej Siewior
2023-11-03 7:11 ` Juri Lelli
2023-08-04 11:30 ` [RFC PATCH 2/3] softirq: Add function to preempt serving softirqs Sebastian Andrzej Siewior
2023-08-04 11:30 ` [RFC PATCH 3/3] time: Allow to preempt after a callback Sebastian Andrzej Siewior
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=ZUNsSqHiYu8WTHBb@localhost.localdomain \
--to=juri.lelli@redhat.com \
--cc=bigeasy@linutronix.de \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=frederic@kernel.org \
--cc=jstultz@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sboyd@kernel.org \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.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.