projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
x86/idle: Restore trace_cpu_idle to mwait_idle() calls
[linux-2.6-block.git]
/
arch
/
x86
/
kernel
/
process.c
diff --git
a/arch/x86/kernel/process.c
b/arch/x86/kernel/process.c
index 9cad694ed7c4d6a755b34af705e0a055cb0c04aa..c27cad7267655c3794972344adf0b7924e38c138 100644
(file)
--- a/
arch/x86/kernel/process.c
+++ b/
arch/x86/kernel/process.c
@@
-81,7
+81,7
@@
EXPORT_SYMBOL_GPL(idle_notifier_unregister);
*/
int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
{
*/
int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
{
-
*dst = *src
;
+
memcpy(dst, src, arch_task_struct_size)
;
return fpu__copy(&dst->thread.fpu, &src->thread.fpu);
}
return fpu__copy(&dst->thread.fpu, &src->thread.fpu);
}
@@
-408,6
+408,7
@@
static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c)
static void mwait_idle(void)
{
if (!current_set_polling_and_test()) {
static void mwait_idle(void)
{
if (!current_set_polling_and_test()) {
+ trace_cpu_idle_rcuidle(1, smp_processor_id());
if (this_cpu_has(X86_BUG_CLFLUSH_MONITOR)) {
smp_mb(); /* quirk */
clflush((void *)¤t_thread_info()->flags);
if (this_cpu_has(X86_BUG_CLFLUSH_MONITOR)) {
smp_mb(); /* quirk */
clflush((void *)¤t_thread_info()->flags);
@@
-419,6
+420,7
@@
static void mwait_idle(void)
__sti_mwait(0, 0);
else
local_irq_enable();
__sti_mwait(0, 0);
else
local_irq_enable();
+ trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
} else {
local_irq_enable();
}
} else {
local_irq_enable();
}