]> git.baikalelectronics.ru Git - kernel.git/commit
x86: Simplify cpu_idle_wait
authorVenki Pallipadi <venkatesh.pallipadi@intel.com>
Thu, 10 Apr 2008 16:49:58 +0000 (09:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 10 Apr 2008 22:38:29 +0000 (15:38 -0700)
commitf6af6b0b329db4baab9000f123a8ec06ba3b3f39
tree897e8db7c6eaf3763c2f1ef9aa099f2691d76400
parentb1c581d56f16af02329885ecd05b3287d4cf2343
x86: Simplify cpu_idle_wait

This patch also resolves hangs on boot:
http://lkml.org/lkml/2008/2/23/263
http://bugzilla.kernel.org/show_bug.cgi?id=10093

The bug was causing once-in-few-reboots 10-15 sec wait during boot on
certain laptops.

Earlier commit 6ce07d1b62fc68ea8bd2b98f8cab070f9798f9bf added
smp_call_function in cpu_idle_wait() to kick cpus that are in tickless
idle.  Looking at cpu_idle_wait code at that time, code seemed to be
over-engineered for a case which is rarely used (while changing idle
handler).

Below is a simplified version of cpu_idle_wait, which just makes a dummy
smp_call_function to all cpus, to make them come out of old idle handler
and start using the new idle handler.  It eliminates code in the idle
loop to handle cpu_idle_wait.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c