[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2023052626-blunderer-delegator-4b82@gregkh>
Date: Fri, 26 May 2023 17:25:58 +0100
From: Greg KH <gregkh@...uxfoundation.org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: torvalds@...ux-foundation.org, keescook@...omium.org,
pbonzini@...hat.com, linux-kernel@...r.kernel.org,
ojeda@...nel.org, ndesaulniers@...gle.com, mingo@...hat.com,
will@...nel.org, longman@...hat.com, boqun.feng@...il.com,
juri.lelli@...hat.com, vincent.guittot@...aro.org,
dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com,
mgorman@...e.de, bristot@...hat.com, vschneid@...hat.com,
paulmck@...nel.org, frederic@...nel.org, quic_neeraju@...cinc.com,
joel@...lfernandes.org, josh@...htriplett.org,
mathieu.desnoyers@...icios.com, jiangshanlai@...il.com,
qiang1.zhang@...el.com, rcu@...r.kernel.org, tj@...nel.org,
tglx@...utronix.de
Subject: Re: [RFC][PATCH 2/2] sched: Use fancy new guards
On Fri, May 26, 2023 at 05:05:51PM +0200, Peter Zijlstra wrote:
> Convert kernel/sched/core.c to use the fancy new guards to simplify
> the error paths.
That's slightly crazy...
I like the idea, but is this really correct:
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
> ---
> kernel/sched/core.c | 1223 +++++++++++++++++++++++----------------------------
> kernel/sched/sched.h | 39 +
> 2 files changed, 595 insertions(+), 667 deletions(-)
>
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -1097,24 +1097,21 @@ int get_nohz_timer_target(void)
>
> hk_mask = housekeeping_cpumask(HK_TYPE_TIMER);
>
> - rcu_read_lock();
> - for_each_domain(cpu, sd) {
> - for_each_cpu_and(i, sched_domain_span(sd), hk_mask) {
> - if (cpu == i)
> - continue;
> + void_scope(rcu) {
> + for_each_domain(cpu, sd) {
> + for_each_cpu_and(i, sched_domain_span(sd), hk_mask) {
> + if (cpu == i)
> + continue;
>
> - if (!idle_cpu(i)) {
> - cpu = i;
> - goto unlock;
> + if (!idle_cpu(i))
> + return i;
You can call return from within a "scope" and it will clean up properly?
I tried to read the cpp "mess" but couldn't figure out how to validate
this at all, have a set of tests for this somewhere?
Anyway, the naming is whack, but I don't have a proposed better name,
except you might want to put "scope_" as the prefix not the suffix, but
then that might look odd to, so who knows.
But again, the idea is good, it might save us lots of "you forgot to
clean this up on the error path" mess that we are getting constant churn
for these days...
thanks,
greg k-h
Powered by blists - more mailing lists