[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/6] kvm_stat: Fix the non-x86 exit reasons
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 2/6] kvm_stat: Fix the non-x86 exit reasons |
Date: |
Fri, 31 Oct 2014 16:49:33 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 |
On 17/06/2014 09:54, Michael Ellerman wrote:
> In kvm_stat we have a dictionary of exit reasons for s390. Firstly these
> are not s390 specific, they are the generic exit reasons. So rename the
> dictionary to reflect that.
>
> Secondly, the values are defined using hex, but in the kernel header
> they are decimal. That means values above 9 in kvm_stat are incorrect.
>
> As far as I can tell this does not matter in practice because s390 does
> not define a kvm_exit trace point.
Right, this should be for kvm_userspace_exit. If we do this instead of
your patch 4, we should get kvm_userspace_exit on x86 too:
diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
index fe2eae3..5cd2758 100755
--- a/scripts/kvm/kvm_stat
+++ b/scripts/kvm/kvm_stat
@@ -142,7 +142,7 @@ svm_exit_reasons = {
}
# From include/uapi/linux/kvm.h, KVM_EXIT_xxx
-generic_exit_reasons = {
+userspace_exit_reasons = {
0: 'UNKNOWN',
1: 'EXCEPTION',
2: 'IO',
@@ -172,7 +172,6 @@ generic_exit_reasons = {
vendor_exit_reasons = {
'vmx': vmx_exit_reasons,
'svm': svm_exit_reasons,
- 'IBM/S390': generic_exit_reasons,
}
syscall_numbers = {
@@ -190,9 +189,11 @@ for line in file('/proc/cpuinfo').readlines():
exit_reasons = vendor_exit_reasons[flag]
if flag in syscall_numbers:
sc_perf_evt_open = syscall_numbers[flag]
-filters = {
- 'kvm_exit': ('exit_reason', exit_reasons)
-}
+
+filters = {}
+filters['kvm_userspace_exit'] = ('reason', userspace_exit_reasons)
+if exit_reasons:
+ filters['kvm_exit'] = ('exit_reason', exit_reasons)
def invert(d):
return dict((x[1], x[0]) for x in d.iteritems())
>
> While we're there, fix the whitespace to match the rest of the file.
>
> Signed-off-by: Michael Ellerman <address@hidden>
> ---
> scripts/kvm/kvm_stat | 49 +++++++++++++++++++++++++++----------------------
> 1 file changed, 27 insertions(+), 22 deletions(-)
>
> diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
> index 2a788bc..fe2eae3 100755
> --- a/scripts/kvm/kvm_stat
> +++ b/scripts/kvm/kvm_stat
> @@ -141,33 +141,38 @@ svm_exit_reasons = {
> 0x400: 'NPF',
> }
>
> -s390_exit_reasons = {
> - 0x000: 'UNKNOWN',
> - 0x001: 'EXCEPTION',
> - 0x002: 'IO',
> - 0x003: 'HYPERCALL',
> - 0x004: 'DEBUG',
> - 0x005: 'HLT',
> - 0x006: 'MMIO',
> - 0x007: 'IRQ_WINDOW_OPEN',
> - 0x008: 'SHUTDOWN',
> - 0x009: 'FAIL_ENTRY',
> - 0x010: 'INTR',
> - 0x011: 'SET_TPR',
> - 0x012: 'TPR_ACCESS',
> - 0x013: 'S390_SIEIC',
> - 0x014: 'S390_RESET',
> - 0x015: 'DCR',
> - 0x016: 'NMI',
> - 0x017: 'INTERNAL_ERROR',
> - 0x018: 'OSI',
> - 0x019: 'PAPR_HCALL',
> +# From include/uapi/linux/kvm.h, KVM_EXIT_xxx
> +generic_exit_reasons = {
> + 0: 'UNKNOWN',
> + 1: 'EXCEPTION',
> + 2: 'IO',
> + 3: 'HYPERCALL',
> + 4: 'DEBUG',
> + 5: 'HLT',
> + 6: 'MMIO',
> + 7: 'IRQ_WINDOW_OPEN',
> + 8: 'SHUTDOWN',
> + 9: 'FAIL_ENTRY',
> + 10: 'INTR',
> + 11: 'SET_TPR',
> + 12: 'TPR_ACCESS',
> + 13: 'S390_SIEIC',
> + 14: 'S390_RESET',
> + 15: 'DCR',
> + 16: 'NMI',
> + 17: 'INTERNAL_ERROR',
> + 18: 'OSI',
> + 19: 'PAPR_HCALL',
> + 20: 'S390_UCONTROL',
> + 21: 'WATCHDOG',
> + 22: 'S390_TSCH',
> + 23: 'EPR',
> }
>
> vendor_exit_reasons = {
> 'vmx': vmx_exit_reasons,
> 'svm': svm_exit_reasons,
> - 'IBM/S390': s390_exit_reasons,
> + 'IBM/S390': generic_exit_reasons,
> }
>
> syscall_numbers = {
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH 2/6] kvm_stat: Fix the non-x86 exit reasons,
Paolo Bonzini <=