Re: [PATCH] cpu/hotplug: Fix rollback during error-out in takedown_cpu()

From: Thomas Gleixner
Date: Wed Sep 05 2018 - 09:14:17 EST


On Wed, 5 Sep 2018, Mukesh Ojha wrote:
> On 9/5/2018 5:03 PM, Thomas Gleixner wrote:
> > > + st->rollback = true;
> > > + st->target = prev_state;
> > > + st->bringup = !st->bringup;
> > No, this is just papering over the actual problem.
> >
> > The state inconsistency happens in take_cpu_down() when it returns with a
> > failure from __cpu_disable() because that returns with state = TEARDOWN_CPU
> > and st->state is then incremented in undo_cpu_down().
> >
> > That's the real issue and we need to analyze the whole cpu_down rollback
> > logic first.
>
> Could this be done like below ?

IOW, more papering over the real root cause.

> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index aa7fe85..47bce90 100644
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -802,17 +802,18 @@ static int take_cpu_down(void *_param)
> ÂÂÂÂÂÂÂ int err, cpu = smp_processor_id();
> ÂÂÂÂÂÂÂ int ret;

^^^^^^^

Please fix your mailer or your editor. That patch is whitespace damaged.

Thanks,

tglx