lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1411633925-9018-1-git-send-email-tianyu.lan@intel.com>
Date:	Thu, 25 Sep 2014 16:32:02 +0800
From:	Lan Tianyu <tianyu.lan@...el.com>
To:	peterz@...radead.org, mingo@...nel.org, rafael.j.wysocki@...el.com,
	toshi.kani@...com, akpm@...ux-foundation.org, tianyu.lan@...el.com,
	ktkhai@...allels.com, fabf@...net.be, laijs@...fujitsu.com,
	srivatsa.bhat@...ux.vnet.ibm.com, ego@...ux.vnet.ibm.com,
	srivatsa@....edu, viresh.kumar@...aro.org
Cc:	todd.e.brandt@...ux.intel.com, tipbot@...or.com,
	wangyun@...ux.vnet.ibm.com, linux-kernel@...r.kernel.org,
	linux-pm@...r.kernel.org
Subject: [RFC PATCH V3 0/3] PM/CPU: Parallel enalbing nonboot cpus with resume devices

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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ