The patch titled x86: reserve the right performance counter for the Intel PerfMon NMI watchdog has been removed from the -mm tree. Its filename was reserve-the-right-performance-counter-for-the-intel-perfmon-nmi-watchdog.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: x86: reserve the right performance counter for the Intel PerfMon NMI watchdog From: Björn Steinbrink <B.Steinbrink@xxxxxx> The Intel PerfMon NMI watchdog was using the generic reservation function which always reserves the first performance counter. But the watchdog actually uses the second performance counter, thus we need a specialised function. Signed-off-by: Björn Steinbrink <B.Steinbrink@xxxxxx> Cc: Andi Kleen <ak@xxxxxxx> Cc: Stephane Eranian <eranian@xxxxxxxxxx> Cc: John Levon <levon@xxxxxxxxxxxxxxxxx> Cc: Philippe Elie <phil.el@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/i386/kernel/cpu/perfctr-watchdog.c | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/cpu/perfctr-watchdog.c~reserve-the-right-performance-counter-for-the-intel-perfmon-nmi-watchdog arch/i386/kernel/cpu/perfctr-watchdog.c --- a/arch/i386/kernel/cpu/perfctr-watchdog.c~reserve-the-right-performance-counter-for-the-intel-perfmon-nmi-watchdog +++ a/arch/i386/kernel/cpu/perfctr-watchdog.c @@ -562,9 +562,27 @@ static int setup_intel_arch_watchdog(uns return 1; } +static int intel_arch_reserve(void) +{ + if (!reserve_perfctr_nmi(MSR_ARCH_PERFMON_PERFCTR1)) + return 0; + + if (!reserve_evntsel_nmi(MSR_ARCH_PERFMON_EVENTSEL1)) { + release_perfctr_nmi(MSR_ARCH_PERFMON_PERFCTR1); + return 0; + } + return 1; +} + +static void intel_arch_unreserve(void) +{ + release_evntsel_nmi(MSR_ARCH_PERFMON_EVENTSEL1); + release_perfctr_nmi(MSR_ARCH_PERFMON_PERFCTR1); +} + static struct wd_ops intel_arch_wd_ops = { - .reserve = single_msr_reserve, - .unreserve = single_msr_unreserve, + .reserve = intel_arch_reserve, + .unreserve = intel_arch_unreserve, .setup = setup_intel_arch_watchdog, .rearm = p6_rearm, .stop = single_msr_stop_watchdog, _ Patches currently in -mm which might be from B.Steinbrink@xxxxxx are origin.patch replace-obscure-constructs-in-fs-block_devc.patch replace-obscure-constructs-in-fs-block_devc-fix.patch bd_claim_by_disk-fix-warning.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html