]> err.no Git - linux-2.6/commit
[IA64] Remove needless delay in MCA rendezvous
authorRuss Anderson <rja@sgi.com>
Thu, 20 Sep 2007 18:59:12 +0000 (13:59 -0500)
committerTony Luck <tony.luck@intel.com>
Fri, 12 Oct 2007 22:17:44 +0000 (15:17 -0700)
commit2bc5c282999af41042c2b703bf3a58ca1d7e3ee2
treefdf37ff750fdfd410e826945d361add25d60504e
parent28eda5b8b434b65e5feb0c58a7477f3f290d72d4
[IA64] Remove needless delay in MCA rendezvous

While testing the MCA recovery code, noticed that some machines would have a
five second delay rendezvousing cpus.  What was happening is that
ia64_wait_for_slaves() would check to see if all the slave CPUs had
rendezvoused.  If any had not, it would wait 1 millisecond then check again.
If any CPUs had still not rendezvoused, it would wait 5 seconds before
checking again.

On some configs the rendezvous takes more than 1 millisecond, causing the code
to wait the full 5 seconds, even though the last CPU rendezvoused after only
a few milliseconds.

The fix is to check every 1 millisecond to see if all the cpus have
rendezvoused.  After 5 seconds the code concludes the CPUs will never
rendezvous (same as before).

The MCA code is, by definition, not performance critical, but a needless
delay of 5 seconds is senseless.  The 5 seconds also adds up quickly
when running the error injection code in a loop.

This patch both simplifies the code and removes the needless delay.

Signed-off-by: Russ Anderson <rja@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/mca.c