[RESEND PATCH v4 0/2] cpuhp: fix some st->target issues

Phil Auld posted 2 patches 3 years, 6 months ago
There is a newer version of this series
kernel/cpu.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[RESEND PATCH v4 0/2] cpuhp: fix some st->target issues
Posted by Phil Auld 3 years, 6 months ago
Fix a couple of cpuhp inconsistencies.

The first prevents target_store() from calling cpu_down() when
target == state which prevents the cpu being incorrectly marked
as dying.  The second just makes the boot cpu have a valid cpuhp
target rather than 0 (CPU_OFFLINE) while being in state
CPU_ONLINE.

A further issue which these two patches don't address is that
the cpuX/online file looks at the device->offline state and can
thus get out of sync with the actual cpuhp state if the cpuhp
target is used to change state.

v3: Added code to make sure st->target == target in the nop case.

v4: Use WARN_ON in the case where state == target but st->target does
not.

Phil Auld (2):
  cpuhp: make target_store() a nop when target == state
  cpuhp: Set cpuhp target for boot cpu

 kernel/cpu.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.31.1
Re: [RESEND PATCH v4 0/2] cpuhp: fix some st->target issues
Posted by Phil Auld 3 years, 6 months ago
On Thu, Sep 15, 2022 at 11:37:49AM -0400 Phil Auld wrote:
> Fix a couple of cpuhp inconsistencies.
> 
> The first prevents target_store() from calling cpu_down() when
> target == state which prevents the cpu being incorrectly marked
> as dying.  The second just makes the boot cpu have a valid cpuhp
> target rather than 0 (CPU_OFFLINE) while being in state
> CPU_ONLINE.
> 
> A further issue which these two patches don't address is that
> the cpuX/online file looks at the device->offline state and can
> thus get out of sync with the actual cpuhp state if the cpuhp
> target is used to change state.
> 
> v3: Added code to make sure st->target == target in the nop case.
> 
> v4: Use WARN_ON in the case where state == target but st->target does
> not.
> 
> Phil Auld (2):
>   cpuhp: make target_store() a nop when target == state
>   cpuhp: Set cpuhp target for boot cpu
> 
>  kernel/cpu.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> -- 
> 2.31.1
> 

Pingy McPing-face :)

Peter?  Anyone?   It's really not ideal to have a cpu marked dying when
it isn't actually going down. Please take a look. 

Thanks for your time.

Cheers,
Phil

--