• Russ Anderson's avatar
    [IA64] Remove needless delay in MCA rendezvous · 2bc5c282
    Russ Anderson authored
    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: default avatarRuss Anderson <rja@sgi.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    2bc5c282
mca.c 59 KB