Messages in this thread | | | Date | Tue, 9 Apr 2024 15:59:59 +0200 | From | Frederic Weisbecker <> | Subject | Re: Nohz_full on boot CPU is broken (was: Re: [PATCH v2 1/1] wq: Avoid using isolated cpus' timers on queue_delayed_work) |
| |
Le Tue, Apr 09, 2024 at 03:07:28PM +0200, Oleg Nesterov a écrit : > On 04/09, Frederic Weisbecker wrote: > > > > Le Sun, Apr 07, 2024 at 03:09:14PM +0200, Oleg Nesterov a écrit : > > > Well, the changelog says > > > > > > nohz_full has been trialed at a large supercomputer site and found to > > > significantly reduce jitter. In order to deploy it in production, they > > > need CPU0 to be nohz_full > > > > > > so I guess this feature has users. > > > > > > But after the commit aae17ebb53cd3da ("workqueue: Avoid using isolated cpus' > > > timers on queue_delayed_work") the kernel will crash at boot time if the boot > > > CPU is nohz_full. > > > > Right but there are many possible calls to housekeeping on boot before the > > first housekeeper becomes online. > > Well, it seems that other callers are more or less fine in this respect... > At least the kernel boots fine with that commit reverted. > > But a) I didn't try to really check, and b) this doesn't matter. > > I agree, and that is why I never blamed this change in queue_delayed_work(). > > OK, you seem to agree with the patch below, I'll write the changelog/comment > and send it "officially". > > Or did I misunderstand you?
Works for me!
Thanks.
> > Oleg. > > > diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c > index 373d42c707bc..e912555c6fc8 100644 > --- a/kernel/sched/isolation.c > +++ b/kernel/sched/isolation.c > @@ -46,7 +46,11 @@ int housekeeping_any_cpu(enum hk_type type) > if (cpu < nr_cpu_ids) > return cpu; > > - return cpumask_any_and(housekeeping.cpumasks[type], cpu_online_mask); > + cpu = cpumask_any_and(housekeeping.cpumasks[type], cpu_online_mask); > + if (cpu < nr_cpu_ids) > + return cpu; > + > + WARN_ON_ONCE(system_state == SYSTEM_RUNNING); > } > } > return smp_processor_id(); >
| |