mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Lan Tianyu <tianyu.lan@intel.com>
To: peterz@infradead.org, mingo@kernel.org,
	rafael.j.wysocki@intel.com, toshi.kani@hp.com,
	akpm@linux-foundation.org, tianyu.lan@intel.com,
	ktkhai@parallels.com, fabf@skynet.be, laijs@cn.fujitsu.com,
	srivatsa.bhat@linux.vnet.ibm.com, ego@linux.vnet.ibm.com,
	srivatsa@mit.edu, viresh.kumar@linaro.org
Cc: todd.e.brandt@linux.intel.com, tipbot@zytor.com,
	wangyun@linux.vnet.ibm.com, linux-kernel@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: [RFC PATCH V3 0/3] PM/CPU: Parallel enalbing nonboot cpus with resume devices
Date: Thu, 25 Sep 2014 16:32:02 +0800	[thread overview]
Message-ID: <1411633925-9018-1-git-send-email-tianyu.lan@intel.com> (raw)

This patchset is to parallel enabling nonboot cpus with resuming devices
during system resume in order to accelerate S2RAM. From test result on
a 8 logical core Haswell machine, system resume time reduces from 347ms
to 217ms with this patchset.

In the current world, all nonboot cpus are enabled serially during system
resume. System resume sequence is that boot cpu enables nonboot cpu one by
one and then resume devices. Before resuming devices, there are few tasks
assigned to nonboot cpus after they are brought up. This wastes cpu usage.

This patchset is to allow boot cpu to go forward to resume devices after
bringing up one nonboot cpu and starting a thread. The thread will be in
charge of bringing up other frozen cpus. The thread will be scheduled to
the first online cpu to run . This makes enabling cpu2~x parallel with
resuming devices.

Patch 2 is to change the policy of init MTRR/PAT for nonboot cpus. Original
code is to init all nonboot cpus' MTRR/PAT after all nonboot cpus coming online
during system resume. Now parallel enabling nonboot cpus with resuming devices and
nonboot cpus will be assigned with tasks before all cpus are online. So
it's necessary to do init MTRR/PAT just after one nonboot cpus comes online
just like dynamic single cpu online. 

Patch 3 is to guarantee that all cpus are online before changing cpufreq_suspended
flag in the cpufreq_resume() to avoid breaking cpufreq subsystem.

Lan Tianyu (3):
  PM/CPU: Parallel enalbing nonboot cpus with resume devices
  X86/CPU: Initialize MTRR/PAT when each cpu is online during system
    resume.
  Cpufreq: Hold cpu_add_remove_lock before change cpufreq_suspended flag

 drivers/cpufreq/cpufreq.c |  2 ++
 kernel/cpu.c              | 64 +++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 55 insertions(+), 11 deletions(-)

-- 
1.8.4.rc0.1.g8f6a3e5.dirty


             reply	other threads:[~2014-09-25  8:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-25  8:32 Lan Tianyu [this message]
2014-09-25  8:32 ` [RFC PATCH V3 1/3] " Lan Tianyu
2014-09-25  8:32 ` [RFC PATCH V2 2/3] X86/CPU: Initialize MTRR/PAT when each cpu is online during system resume Lan Tianyu
2014-09-25  8:32 ` [RFC PATCH V3 3/3] Cpufreq: Hold cpu_add_remove_lock before change cpufreq_suspended flag Lan Tianyu
2014-10-08 20:54 ` [RFC PATCH V3 0/3] PM/CPU: Parallel enalbing nonboot cpus with resume devices Peter Zijlstra
2014-10-08 22:01   ` Rafael J. Wysocki
2014-10-09  1:18   ` Lan Tianyu
2014-10-22  6:06     ` Lan Tianyu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1411633925-9018-1-git-send-email-tianyu.lan@intel.com \
    --to=tianyu.lan@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=ego@linux.vnet.ibm.com \
    --cc=fabf@skynet.be \
    --cc=ktkhai@parallels.com \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=srivatsa.bhat@linux.vnet.ibm.com \
    --cc=srivatsa@mit.edu \
    --cc=tipbot@zytor.com \
    --cc=todd.e.brandt@linux.intel.com \
    --cc=toshi.kani@hp.com \
    --cc=viresh.kumar@linaro.org \
    --cc=wangyun@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®