Messages in this thread | | | Date | Wed, 9 Aug 2023 21:26:51 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 5/9] sched: Simplify ttwu() |
| |
On Wed, Aug 09, 2023 at 04:21:36PM +0100, Valentin Schneider wrote: > On 01/08/23 22:41, Peter Zijlstra wrote: > > Use guards to reduce gotos and simplify control flow. > > > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > > --- > > kernel/sched/core.c | 221 +++++++++++++++++++++++++--------------------------- > > 1 file changed, 109 insertions(+), 112 deletions(-) > > > > --- a/kernel/sched/core.c > > +++ b/kernel/sched/core.c > > @@ -3706,14 +3706,14 @@ ttwu_stat(struct task_struct *p, int cpu > > struct sched_domain *sd; > > > > __schedstat_inc(p->stats.nr_wakeups_remote); > > - rcu_read_lock(); > > + > > + guard(rcu)(); > > This isn't strictly equivalent, right? AFAICT that pushes the > rcu_read_unlock() further down than it currently is - not a big deal, but > indentation aside scoped_guard() would preserve that.
The full hunk:
| @@ -3706,14 +3706,14 @@ ttwu_stat(struct task_struct *p, int cpu | struct sched_domain *sd; | | __schedstat_inc(p->stats.nr_wakeups_remote); | - rcu_read_lock(); | + | + guard(rcu)(); | for_each_domain(rq->cpu, sd) { | if (cpumask_test_cpu(cpu, sched_domain_span(sd))) { | __schedstat_inc(sd->ttwu_wake_remote); | break; | } | } | - rcu_read_unlock(); | }
And you'll see the guard goes out of scope here ^
Which is the exact place rcu_read_unlock() was at, no?
| | if (wake_flags & WF_MIGRATED)
| |