From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
To: rjw@sisk.pl
Cc: srivatsa.bhat@linux.vnet.ibm.com, bp@amd64.org, pavel@ucw.cz,
len.brown@intel.com, tj@kernel.org, mingo@elte.hu,
a.p.zijlstra@chello.nl, akpm@linux-foundation.org,
suresh.b.siddha@intel.com, lucas.demarchi@profusion.mobi,
rusty@rustcorp.com.au, rdunlap@xenotime.net,
vatsa@linux.vnet.ibm.com, ashok.raj@intel.com,
tigran@aivazian.fsnet.co.uk, tglx@linutronix.de, hpa@zytor.com,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org
Subject: [PATCH v2 3/3] Update documentation
Date: Mon, 10 Oct 2011 18:03:16 +0530 [thread overview]
Message-ID: <20111010123312.15067.83231.stgit@srivatsabhat.in.ibm.com> (raw)
In-Reply-To: <20111010123102.15067.23128.stgit@srivatsabhat.in.ibm.com>
Update documentation about the cpu hotplug and suspend/hibernate
race condition related issue in Documentation/power directory.
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
---
Documentation/power/freezing-of-tasks.txt | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/Documentation/power/freezing-of-tasks.txt b/Documentation/power/freezing-of-tasks.txt
index 38b5724..80acd30 100644
--- a/Documentation/power/freezing-of-tasks.txt
+++ b/Documentation/power/freezing-of-tasks.txt
@@ -176,3 +176,25 @@ tasks, since it generally exists anyway.
A driver must have all firmwares it may need in RAM before suspend() is called.
If keeping them is not practical, for example due to their size, they must be
requested early enough using the suspend notifier API described in notifiers.txt.
+
+However, there is another problem related to request_firmware() which is not
+related to device drivers. The x86 microcode core uses request_firmware() to
+get the CPU microcode from userspace. And microcode updates can be triggered by
+various events such as loading of microcode driver module, reloading of
+microcode image by writing 1 to the sysfs file /sys/devices/system/cpu/cpu*/
+microcode/reload or by onlining a CPU during a CPU hotplug operation (in this
+case, the microcode driver's callback for CPU online event does a microcode
+update).
+In all these scenarios, due to some race condition with the freezing of tasks,
+if the userspace happens to be frozen at the moment when request_firmware() is
+called, then since the caller will be waiting for the firmware, eventually
+the freezing of tasks will fail.
+
+To solve the issue in the CPU hotplug case, synchronization has been added to
+prevent the CPU hotplug online operation from running in parallel with
+suspend/hibernate. The microcode driver module load/unload and microcode image
+reload are carried out quite infrequently in practice and hence the chances of
+these events racing with suspend/hibernation are very rare. Anyway, even those
+corner cases are expected to be handled well when microcode loading via the
+bootloader gets implemented.
+
next prev parent reply other threads:[~2011-10-10 12:33 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-10 12:31 [PATCH v2 0/3] Freezer, CPU hotplug, x86 Microcode: Fix task freezing failures Srivatsa S. Bhat
2011-10-10 12:32 ` [PATCH v2 1/3] Introduce helper functions Srivatsa S. Bhat
2011-10-10 12:33 ` [PATCH v2 2/3] Mutually exclude cpu online and suspend/hibernate Srivatsa S. Bhat
2011-10-10 12:45 ` Srivatsa S. Bhat
2011-10-10 14:26 ` Peter Zijlstra
2011-10-10 15:16 ` Srivatsa S. Bhat
2011-10-11 20:32 ` Srivatsa S. Bhat
2011-10-11 21:56 ` Rafael J. Wysocki
2011-10-12 3:57 ` Srivatsa S. Bhat
2011-10-12 19:31 ` Rafael J. Wysocki
2011-10-12 21:25 ` Srivatsa S. Bhat
2011-10-12 22:09 ` Rafael J. Wysocki
2011-10-13 15:42 ` Srivatsa S. Bhat
2011-10-13 16:06 ` Tejun Heo
2011-10-13 17:01 ` Borislav Petkov
2011-10-13 17:29 ` Srivatsa S. Bhat
2011-10-19 17:29 ` Srivatsa S. Bhat
2011-10-13 18:03 ` Alan Stern
2011-10-13 19:07 ` Rafael J. Wysocki
2011-10-13 19:08 ` Rafael J. Wysocki
2011-10-10 15:25 ` Alan Stern
2011-10-10 17:00 ` Tejun Heo
2011-10-11 9:18 ` Peter Zijlstra
2011-10-11 9:37 ` Srivatsa S. Bhat
2011-10-10 12:33 ` Srivatsa S. Bhat [this message]
2011-10-10 15:23 ` [PATCH v2 0/3] Freezer, CPU hotplug, x86 Microcode: Fix task freezing failures Alan Stern
2011-10-10 15:32 ` Srivatsa S. Bhat
2011-10-10 16:53 ` Borislav Petkov
2011-10-10 17:14 ` Pavel Machek
2011-10-10 17:30 ` Srivatsa S. Bhat
2011-10-10 17:53 ` Borislav Petkov
2011-10-10 18:08 ` tj
2011-10-10 18:34 ` Borislav Petkov
2011-10-10 18:45 ` Srivatsa S. Bhat
2011-10-10 18:53 ` tj
2011-10-10 19:00 ` Srivatsa S. Bhat
2011-10-10 20:35 ` Borislav Petkov
[not found] ` <20111010202913.GA30798@aftab>
2011-10-10 21:13 ` tj
2011-10-11 9:17 ` Peter Zijlstra
2011-10-10 16:57 ` Tejun Heo
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=20111010123312.15067.83231.stgit@srivatsabhat.in.ibm.com \
--to=srivatsa.bhat@linux.vnet.ibm.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=ashok.raj@intel.com \
--cc=bp@amd64.org \
--cc=hpa@zytor.com \
--cc=len.brown@intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lucas.demarchi@profusion.mobi \
--cc=mingo@elte.hu \
--cc=pavel@ucw.cz \
--cc=rdunlap@xenotime.net \
--cc=rjw@sisk.pl \
--cc=rusty@rustcorp.com.au \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
--cc=tigran@aivazian.fsnet.co.uk \
--cc=tj@kernel.org \
--cc=vatsa@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®