From patchwork Fri Oct 31 15:49:33 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 5205491 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id C1ED39F30B for ; Fri, 31 Oct 2014 15:50:00 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D1C9820173 for ; Fri, 31 Oct 2014 15:49:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9436D20158 for ; Fri, 31 Oct 2014 15:49:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756568AbaJaPty (ORCPT ); Fri, 31 Oct 2014 11:49:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38371 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756496AbaJaPtx (ORCPT ); Fri, 31 Oct 2014 11:49:53 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s9VFndeN005092 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 31 Oct 2014 11:49:39 -0400 Received: from [10.36.112.58] (ovpn-112-58.ams2.redhat.com [10.36.112.58]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s9VFnX3p025884 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Fri, 31 Oct 2014 11:49:36 -0400 Message-ID: <5453AF8D.5090601@redhat.com> Date: Fri, 31 Oct 2014 16:49:33 +0100 From: Paolo Bonzini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Michael Ellerman , qemu-devel@nongnu.org CC: kvm@vger.kernel.org, alfs@linux.vnet.ibm.com, jfrei@linux.vnet.ibm.com, agraf@suse.de, jan.kiszka@siemens.com, aik@ozlabs.ru Subject: Re: [PATCH 2/6] kvm_stat: Fix the non-x86 exit reasons References: <1402991675-24905-1-git-send-email-mpe@ellerman.id.au> <1402991675-24905-2-git-send-email-mpe@ellerman.id.au> In-Reply-To: <1402991675-24905-2-git-send-email-mpe@ellerman.id.au> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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: > > While we're there, fix the whitespace to match the rest of the file. > > Signed-off-by: Michael Ellerman > --- > 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 = { > --- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html 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())