@@ -175,18 +175,22 @@ x86_exit_reasons = {
}
sc_perf_evt_open = None
-exit_reasons = None
+
+filters = {
+ 'kvm_userspace_exit': ('reason', generic_exit_reasons)
+}
def x86_init(flag):
globals().update({
'sc_perf_evt_open' : 298,
- 'exit_reasons' : x86_exit_reasons[flag],
+ 'filters' : {
+ 'kvm_exit': ('exit_reason', x86_exit_reasons[flag])
+ },
})
def s390_init():
globals().update({
'sc_perf_evt_open' : 331,
- 'exit_reasons' : generic_exit_reasons,
})
def detect_platform():
@@ -204,10 +208,6 @@ def detect_platform():
detect_platform()
-filters = {
- 'kvm_exit': ('exit_reason', exit_reasons)
-}
-
def invert(d):
return dict((x[1], x[0]) for x in d.iteritems())
Although we have the exit_reasons defined for s390, as far as I can tell they never take effect. That is because there is no 'kvm_exit' tracepoint defined for s390. What is defined, for all platforms, is 'kvm_userspace_exit'. That tracepoint uses the generic_exit_reason, but the filter parameter is 'reason'. So invert the way we setup filters, define it by default for the generic tracepoint 'kvm_userspace_exit', and let x86 override it. Doing it this way will also work for powerpc when we add it. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> --- scripts/kvm/kvm_stat | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)