Re: [Resend PATCH V2] X86/CPU: Avoid 100ms sleep for cpu offline during S3

Ingo Molnar
2014-09-24T13:00:26Z

* Lan Tianyu <tianyu.lan@intel.com> wrote:

> On 2014年08月26日 15:43, Lan Tianyu wrote:
> > With some bad kernel configures, cpu offline consumes more than 100ms
> > during S3. This because native_cpu_die() would fall into 100ms
> > sleep when cpu idle loop thread marked cpu state to DEAD slower. It's
> > timing related issue. What native_cpu_die() does is that poll cpu
> > state and wait for 100ms if cpu state hasn't been marked to DEAD.
> > The 100ms sleep doesn't make sense. To avoid such long sleep, this
> > patch is to add struct completion to each cpu, wait for the completion
> > in the native_cpu_die() and wakeup the completion when the cpu state is
> > marked to DEAD.
> >
> > Tested on the Intel Xeon server with 48 cores, Ivbridge and Haswell laptops.
> > the times of cpu offline on these machines are reduced from more than 100ms
> > to less than 5ms. The system suspend time reduces 2.3s on the servers.
> >
> > Borislav and Prarit also helped to test the patch on an AMD machine and
> > a few systems of various sizes and configurations (multi-socket,
> > single-socket, no hyper threading, etc.). No issues seen.
> >
> > Acked-by: Borislav Petkov <bp@suse.de>
> > Tested-by: Prarit Bhargava <prarit@redhat.com>
> > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
> > ---
> > arch/x86/kernel/smpboot.c | 23 +++++++++++------------
> > 1 file changed, 11 insertions(+), 12 deletions(-)
> >
>
> Hi HPA, Ingo, Thomas & Peter Z:
> Is this patch ok for you?

Nice patch!

I cleaned up a few small details and will push it out if it
passes testing.

Thanks,

Ingo