Messages in this thread | | | Date | Mon, 12 Apr 2021 12:16:57 +0100 | From | Qais Yousef <> | Subject | Re: [PATCH 2/3] cpumask: Introduce DYING mask |
| |
On 04/12/21 12:55, Peter Zijlstra wrote: > On Sun, Mar 21, 2021 at 07:30:37PM +0000, Qais Yousef wrote: > > On 03/10/21 15:53, Peter Zijlstra wrote: > > > --- a/kernel/cpu.c > > > +++ b/kernel/cpu.c > > > @@ -160,6 +160,9 @@ static int cpuhp_invoke_callback(unsigne > > > int (*cb)(unsigned int cpu); > > > int ret, cnt; > > > > > > + if (bringup != !cpu_dying(cpu)) > > > > nit: this condition is hard to read > > > > > + set_cpu_dying(cpu, !bringup); > > How's: > > if (cpu_dying(cpu) != !bringup) > set_cpu_dying(cpu, !bringup);
Slightly better I suppose :)
> > > since cpu_dying() will do cpumask_test_cpu(), are we saving much if we > > unconditionally call set_cpu_dying(cpu, !bringup) which performs > > cpumask_{set, clear}_cpu()? > > This is hotplug, it's all slow, endlessly rewriting that bit shouldn't > be a problem I suppose.
True. Beside I doubt there's a performance hit really, cpu_dying() will read the bit in the cpumask anyway, unconditionally writing will be as fast since both will fetch the cacheline anyway?
Regardless, not really a big deal. It's not really the hardest thing to stare at here ;-)
Thanks
-- Qais Yousef
| |