perf/x86/kvm: Fix Host-Only/Guest-Only counting with SVM disabled
authorJoerg Roedel <joerg.roedel@amd.com>
Wed, 29 Feb 2012 13:57:32 +0000 (14:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 12 Mar 2012 19:31:23 +0000 (12:31 -0700)
commit9701e4af7147129671f1946794e52f6abcd6f17a
tree261788ccb7fe410719c717a9b5ee68991eb64c18
parent5798b013af929124c7ec9872719bf94e93c4a923
perf/x86/kvm: Fix Host-Only/Guest-Only counting with SVM disabled

commit 1018faa6cf23b256bf25919ef203cd7c129f06f2 upstream.

It turned out that a performance counter on AMD does not
count at all when the GO or HO bit is set in the control
register and SVM is disabled in EFER.

This patch works around this issue by masking out the HO bit
in the performance counter control register when SVM is not
enabled.

The GO bit is not touched because it is only set when the
user wants to count in guest-mode only. So when SVM is
disabled the counter should not run at all and the
not-counting is the intended behaviour.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Avi Kivity <avi@redhat.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Gleb Natapov <gleb@redhat.com>
Cc: Robert Richter <robert.richter@amd.com>
Link: http://lkml.kernel.org/r/1330523852-19566-1-git-send-email-joerg.roedel@amd.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/include/asm/perf_event.h
arch/x86/kernel/cpu/perf_event.h
arch/x86/kernel/cpu/perf_event_amd.c
arch/x86/kvm/svm.c