1
linux/arch/x86/kernel/cpu
Huang Ying 885b976fad ACPI, APEI, Add ERST record ID cache
APEI ERST firmware interface and implementation has no multiple users
in mind.  For example, if there is four records in storage with ID: 1,
2, 3 and 4, if two ERST readers enumerate the records via
GET_NEXT_RECORD_ID as follow,

reader 1		reader 2
1
			2
3
			4
-1
			-1

where -1 signals there is no more record ID.

Reader 1 has no chance to check record 2 and 4, while reader 2 has no
chance to check record 1 and 3.  And any other GET_NEXT_RECORD_ID will
return -1, that is, other readers will has no chance to check any
record even they are not cleared by anyone.

This makes raw GET_NEXT_RECORD_ID not suitable for used by multiple
users.

To solve the issue, an in-memory ERST record ID cache is designed and
implemented.  When enumerating record ID, the ID returned by
GET_NEXT_RECORD_ID is added into cache in addition to be returned to
caller.  So other readers can check the cache to get all record ID
available.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2011-03-21 22:59:06 -04:00
..
cpufreq x86: Replace uses of current_cpu_data with this_cpu ops 2010-12-30 12:22:03 +01:00
mcheck ACPI, APEI, Add ERST record ID cache 2011-03-21 22:59:06 -04:00
mtrr x86, mtrr: Avoid MTRR reprogramming on BP during boot on UP platforms 2011-02-03 12:10:38 +01:00
.gitignore
amd.c x86: Replace uses of current_cpu_data with this_cpu ops 2010-12-30 12:22:03 +01:00
bugs_64.c
bugs.c
centaur.c
common.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
cpu.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 13:18:36 -07:00
cyrix.c
hypervisor.c
intel_cacheinfo.c x86: Update CPU cache attributes table descriptors 2011-01-20 12:13:20 +01:00
intel.c Merge branches 'softirq-for-linus', 'x86-debug-for-linus', 'x86-numa-for-linus', 'x86-quirks-for-linus', 'x86-setup-for-linus', 'x86-uv-for-linus' and 'x86-vm86-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-23 08:25:36 -07:00
Makefile
mkcapflags.pl
mshyperv.c
perf_event_amd.c perf, amd: Remove the nb lock 2010-12-08 20:16:30 +01:00
perf_event_intel_ds.c perf, x86: Use NUMA aware allocations for PEBS/BTS/DS allocations 2010-10-22 14:18:26 +02:00
perf_event_intel_lbr.c
perf_event_intel.c Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2011-01-07 17:02:58 -08:00
perf_event_p4.c perf, x86: P4 PMU: Fix spurious NMI messages 2011-02-16 12:26:12 +01:00
perf_event_p6.c
perf_event.c Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-01-11 11:02:13 -08:00
perfctr-watchdog.c x86, nmi_watchdog: Remove ARCH_HAS_NMI_WATCHDOG and rely on CONFIG_HARDLOCKUP_DETECTOR 2010-12-22 22:15:32 +01:00
powerflags.c
proc.c
scattered.c Merge branch 'x86-amd-nb-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 13:01:08 -07:00
sched.c
topology.c
transmeta.c
umc.c
vmware.c