From: Paolo Bonzini <pbonzini@redhat.com>
To: Janosch Frank <frankja@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Cc: cornelia.huck@de.ibm.com
Subject: Re: [Qemu-devel] [PATCH 25/34] scripts/kvm/kvm_stat: Group arch specific data
Date: Thu, 7 Jan 2016 16:30:54 +0100 [thread overview]
Message-ID: <568E84AE.1050607@redhat.com> (raw)
In-Reply-To: <1449749584-23214-26-git-send-email-frankja@linux.vnet.ibm.com>
On 10/12/2015 13:12, Janosch Frank wrote:
> + self.exit_reasons = None
> + self.sc_perf_evt_open = None
> + self.ioctl_numbers = {
> + 'SET_FILTER': 0x40082406,
> + 'ENABLE': 0x00002400,
> + 'DISABLE': 0x00002401,
> + 'RESET': 0x00002403,
> + }
> + self.set_arch_data()
>
> - SC_PERF_EVT_OPEN = 298
> - EXIT_REASONS = X86_EXIT_REASONS[flag]
> + def set_arch_data(self):
> + machine = os.uname()[4]
>
> -def s390_init():
> - global SC_PERF_EVT_OPEN
> + if machine.startswith('ppc'):
> + self.sc_perf_evt_open = 319
> + self.ioctl_numbers['ENABLE'] = 0x20002400
> + self.ioctl_numbers['DISABLE'] = 0x20002401
Please keep the separate foo_init() methods. Even better, change them
to __init__ of Arch subclasses, and add a static get_arch() method that
instantiates the appropriate subclass. Then get_arch() can be used to
initialize ARCH.
Paolo
>
> - SC_PERF_EVT_OPEN = 331
> + # PPC comes in 32 and 64 bit and some generated ioctl
> + # numbers depend on the wordsize.
> + char_ptr_size = ctypes.sizeof(ctypes.c_char_p)
> + self.ioctl_numbers['SET_FILTER'] = 0x80002406 | char_ptr_size << 16
>
> -def ppc_init():
> - global SC_PERF_EVT_OPEN
> - global IOCTL_NUMBERS
> + elif machine.startswith('aarch64'):
> + self.sc_perf_evt_open = 241
> + self.exit_reasons = AARCH64_EXIT_REASONS
>
> - SC_PERF_EVT_OPEN = 319
> + elif machine.startswith('s390'):
> + self.sc_perf_evt_open = 331
>
> - IOCTL_NUMBERS['ENABLE'] = 0x20002400
> - IOCTL_NUMBERS['DISABLE'] = 0x20002401
> - IOCTL_NUMBERS['SET_FILTER'] = 0x80002406 | (ctypes.sizeof(ctypes.c_char_p)
> - << 16)
> + else:
> + # X86_64
> + for line in open('/proc/cpuinfo'):
> + if not line.startswith('flags'):
> + continue
>
> -def aarch64_init():
> - global SC_PERF_EVT_OPEN
> - global EXIT_REASONS
> + self.sc_perf_evt_open = 298
>
> - SC_PERF_EVT_OPEN = 241
> - EXIT_REASONS = AARCH64_EXIT_REASONS
> + flags = line.split()
> + if 'vmx' in flags:
> + self.exit_reasons = VMX_EXIT_REASONS
> + if 'svm' in flags:
> + self.exit_reasons = SVM_EXIT_REASONS
> + return
>
> -def detect_platform():
next prev parent reply other threads:[~2016-01-07 15:31 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-10 12:12 [Qemu-devel] [PATCH 00/34] kvm_stat: Cleanup and fixup Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 01/34] scripts/kvm/kvm_stat: Cleanup of multiple imports Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 02/34] scripts/kvm/kvm_stat: Replaced os.listdir with os.walk Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 03/34] scripts/kvm/kvm_stat: Make constants uppercase Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 04/34] scripts/kvm/kvm_stat: Removed unneeded PERF constants Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 05/34] scripts/kvm/kvm_stat: Mark globals in functions Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 06/34] scripts/kvm/kvm_stat: Invert dictionaries Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 07/34] scripts/kvm/kvm_stat: Cleanup of path variables Janosch Frank
2016-01-07 14:56 ` Paolo Bonzini
2016-01-07 16:58 ` Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 08/34] scripts/kvm/kvm_stat: Improve debugfs access checking Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 09/34] scripts/kvm/kvm_stat: Introduce main function Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 10/34] scripts/kvm/kvm_stat: Fix spaces around keyword assignments Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 11/34] scripts/kvm/kvm_stat: Rename variables that redefine globals Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 12/34] scripts/kvm/kvm_stat: Moved DebugfsProvider Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 13/34] scripts/kvm/kvm_stat: Fixup syscall error reporting Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 14/34] scripts/kvm/kvm_stat: Set sensible no. files rlimit Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 15/34] scripts/kvm/kvm_stat: Cleanup of platform detection Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 16/34] scripts/kvm/kvm_stat: Make cpu detection a function Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 17/34] scripts/kvm/kvm_stat: Rename _perf_event_open Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 18/34] scripts/kvm/kvm_stat: Introduce properties for providers Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 19/34] scripts/kvm/kvm_stat: Cleanup of TracepointProvider Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 20/34] scripts/kvm/kvm_stat: Cleanup cpu list retrieval Janosch Frank
2016-01-07 15:21 ` Paolo Bonzini
2016-01-07 16:56 ` Janosch Frank
2016-01-07 17:02 ` Paolo Bonzini
2015-12-10 12:12 ` [Qemu-devel] [PATCH 21/34] scripts/kvm/kvm_stat: Encapsulate filters variable Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 22/34] scripts/kvm/kvm_stat: Cleanup of Stats class Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 23/34] scripts/kvm/kvm_stat: Cleanup of Groups class Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 24/34] scripts/kvm/kvm_stat: Cleanup of Event class Janosch Frank
2016-01-07 15:25 ` Paolo Bonzini
2015-12-10 12:12 ` [Qemu-devel] [PATCH 25/34] scripts/kvm/kvm_stat: Group arch specific data Janosch Frank
2016-01-07 15:30 ` Paolo Bonzini [this message]
2015-12-10 12:12 ` [Qemu-devel] [PATCH 26/34] scripts/kvm/kvm_stat: Remove unneeded X86_EXIT_REASONS Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 27/34] scripts/kvm/kvm_stat: Make tui function a class Janosch Frank
2016-01-07 15:40 ` Paolo Bonzini
2015-12-10 12:12 ` [Qemu-devel] [PATCH 28/34] scripts/kvm/kvm_stat: Fix output formatting Janosch Frank
2015-12-10 12:12 ` [Qemu-devel] [PATCH 29/34] scripts/kvm/kvm_stat: Move to argparse and add description Janosch Frank
2016-01-07 15:41 ` Paolo Bonzini
2016-01-07 15:54 ` Janosch Frank
2016-01-07 16:02 ` Paolo Bonzini
2015-12-10 12:13 ` [Qemu-devel] [PATCH 30/34] scripts/kvm/kvm_stat: Cleanup and pre-init perf_event_attr Janosch Frank
2015-12-10 12:13 ` [Qemu-devel] [PATCH 31/34] scripts/kvm/kvm_stat: Read event values as u64 Janosch Frank
2015-12-10 12:13 ` [Qemu-devel] [PATCH 32/34] scripts/kvm/kvm_stat: Fix rlimit for unprivileged users Janosch Frank
2015-12-10 12:13 ` [Qemu-devel] [PATCH 33/34] scripts/kvm/kvm_stat: Fixup filtering Janosch Frank
2015-12-10 12:13 ` [Qemu-devel] [PATCH 34/34] scripts/kvm/kvm_stat: Add interactive filtering Janosch Frank
2015-12-15 9:56 ` [Qemu-devel] [PATCH 00/34] kvm_stat: Cleanup and fixup Cornelia Huck
2016-01-07 13:41 ` Cornelia Huck
2016-01-07 13:50 ` Paolo Bonzini
2016-01-07 15:44 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=568E84AE.1050607@redhat.com \
--to=pbonzini@redhat.com \
--cc=cornelia.huck@de.ibm.com \
--cc=frankja@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).