• Hidetoshi Seto's avatar
    [IA64] CMC/CPE: Reverse the order of fetching log and checking poll threshold · ddb4f0df
    Hidetoshi Seto authored
    This patch reverses the order of fetching log from SAL and
    checking poll threshold. This will fix following trivial issues:
    
    - If SAL_GET_SATE_INFO is unbelievably slow (due to huge system
       or just its silly implementation) and if it takes more than
       1/5 sec, CMCI/CPEI will never switch to CMCP/CPEP.
    - Assuming terrible flood of interrupt (continuous corrected
       errors let all CPUs enter to handler at once and bind them
       in it), CPUs will be serialized by IA64_LOG_LOCK(*).
       Now we check the poll threshold after the lock and log fetch,
       so we need to call SAL_GET_STATE_INFO (num_online_cpus() + 4)
       times in the worst case.
       if we can check the threshold before the lock, we can shut up
       interrupts quickly without waiting preceding log fetches, and
       the number of times will be reduced to (num_online_cpus()) in
       the same situation.
    Signed-off-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    ddb4f0df
mca.c 57.9 KB