Re: [PATCH v2] random: set fast pool count to zero in cpuhp teardown

From: Sebastian Andrzej Siewior
Date: Mon Feb 14 2022 - 10:17:07 EST


On 2022-02-14 16:10:36 [+0100], Jason A. Donenfeld wrote:
> Hi Sebastian,
Hi Jason,

> On Mon, Feb 14, 2022 at 4:06 PM Sebastian Andrzej Siewior
> <bigeasy@xxxxxxxxxxxxx> wrote:
> > But you acked my question regarding boot-up? So the teardown callback
> > won't happen during boot-up.
>
> I'd like to do only one method here, so we can set those fields in
> startup, provided it happens early enough.
> > > So I think it seems better to keep it before CPUHP_TIMERS_PREPARE, but
> > > do it on startup rather than teardown. Seem reasonable? Would that
> > > mean we zero out before IRQs are enabled?
> > I would only zero it if the upper-most bit is there.
>
> I still don't quite understand: why can't we just unconditionally
> zero, always, before CPUHP_TIMERS_PREPARE?

If you have a rollback before CPUHP_TIMERS_PREPARE you don't notice it
and your worker may have skipped this work because it run on the wrong
CPU. Also, I *think* that if you happen to have 64 interrupts between
CPUHP_AP_ONLINE_IDLE … CPUHP_AP_WORKQUEUE_ONLINE

then the scheduled worker is unbound and may run on the "wrong" CPU.

> > And then have another one after
>
> Two of them seems a little bit out of hand in complexity here... Let's
> just find one phase where we can simply set variables without too much
> fiddly logic. I'll send a v+1 of what I have in mind for the startup
> path.

Oki.

> Jason

Sebastian