]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ACPI, APEI, GHES, Error records content based throttle
authorHuang Ying <ying.huang@intel.com>
Wed, 13 Jul 2011 05:14:26 +0000 (13:14 +0800)
committerLen Brown <len.brown@intel.com>
Thu, 14 Jul 2011 03:39:53 +0000 (23:39 -0400)
commit40c454a7b8c7fab7a5fffb8713064ad811c9fc60
treef0d098fbaea73e9636b02f7904c72e38d381cede
parenta7c639cdfcc43220fd4ae40e500d60e7ec501710
ACPI, APEI, GHES, Error records content based throttle

printk is used by GHES to report hardware errors.  Ratelimit is
enforced on the printk to avoid too many hardware error reports in
kernel log.  Because there may be thousands or even millions of
corrected hardware errors during system running.

Currently, a simple scheme is used.  That is, the total number of
hardware error reporting is ratelimited.  This may cause some issues
in practice.

For example, there are two kinds of hardware errors occurred in
system.  One is corrected memory error, because the fault memory
address is accessed frequently, there may be hundreds error report
per-second.  The other is corrected PCIe AER error, it will be
reported once per-second.  Because they share one ratelimit control
structure, it is highly possible that only memory error is reported.

To avoid the above issue, an error record content based throttle
algorithm is implemented in the patch.  Where after the first
successful reporting, all error records that are same are throttled for
some time, to let other kinds of error records have the opportunity to
be reported.

In above example, the memory errors will be throttled for some time,
after being printked.  Then the PCIe AER error will be printked
successfully.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/apei/ghes.c