From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Gavin Shan <gshan@redhat.com>, kvm@vger.kernel.org
Cc: pbonzini@redhat.com, rkrcmar@redhat.com, drjones@redhat.com,
gshan@redhat.com
Subject: Re: [PATCH] tools/kvm_stat: Fix kvm_exit filter name
Date: Tue, 10 Dec 2019 09:45:27 +0100 [thread overview]
Message-ID: <871rtcd0wo.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <20191210044829.180122-1-gshan@redhat.com>
Gavin Shan <gshan@redhat.com> writes:
> The filter name is fixed to "exit_reason" for some kvm_exit events, no
> matter what architect we have. Actually, the filter name ("exit_reason")
> is only applicable to x86, meaning it's broken on other architects
> including aarch64.
>
> This fixes the issue by providing various kvm_exit filter names, depending
> on architect we're on. Afterwards, the variable filter name is picked and
> applied through ioctl(fd, SET_FILTER).
Would it actually make sense to standardize (to certain extent) kvm_exit
tracepoints instead?
>
> Reported-by: Andrew Jones <drjones@redhat.com>
> Signed-off-by: Gavin Shan <gshan@redhat.com>
> ---
> tools/kvm/kvm_stat/kvm_stat | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat
> index ad1b9e646c49..f9273614b7e3 100755
> --- a/tools/kvm/kvm_stat/kvm_stat
> +++ b/tools/kvm/kvm_stat/kvm_stat
> @@ -270,6 +270,7 @@ class ArchX86(Arch):
> def __init__(self, exit_reasons):
> self.sc_perf_evt_open = 298
> self.ioctl_numbers = IOCTL_NUMBERS
> + self.exit_field = 'exit_reason'
Also, 'exit_field' name is confusing (probably because I'm thinking of
VMCS fields)
> self.exit_reasons = exit_reasons
>
> def debugfs_is_child(self, field):
> @@ -289,6 +290,7 @@ class ArchPPC(Arch):
> # numbers depend on the wordsize.
> char_ptr_size = ctypes.sizeof(ctypes.c_char_p)
> self.ioctl_numbers['SET_FILTER'] = 0x80002406 | char_ptr_size << 16
> + self.exit_field = 'exit_nr'
> self.exit_reasons = {}
>
> def debugfs_is_child(self, field):
> @@ -300,6 +302,7 @@ class ArchA64(Arch):
> def __init__(self):
> self.sc_perf_evt_open = 241
> self.ioctl_numbers = IOCTL_NUMBERS
> + self.exit_field = 'ret'
And this is the most confusing part. Why do we have 'ret' as an exit
reason in the first place?
> self.exit_reasons = AARCH64_EXIT_REASONS
>
> def debugfs_is_child(self, field):
> @@ -311,6 +314,7 @@ class ArchS390(Arch):
> def __init__(self):
> self.sc_perf_evt_open = 331
> self.ioctl_numbers = IOCTL_NUMBERS
> + self.exit_field = None
> self.exit_reasons = None
>
> def debugfs_is_child(self, field):
> @@ -541,8 +545,8 @@ class TracepointProvider(Provider):
> """
> filters = {}
> filters['kvm_userspace_exit'] = ('reason', USERSPACE_EXIT_REASONS)
> - if ARCH.exit_reasons:
> - filters['kvm_exit'] = ('exit_reason', ARCH.exit_reasons)
> + if ARCH.exit_field and ARCH.exit_reasons:
> + filters['kvm_exit'] = (ARCH.exit_field, ARCH.exit_reasons)
> return filters
>
> def _get_available_fields(self):
--
Vitaly
next prev parent reply other threads:[~2019-12-10 8:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-10 4:48 [PATCH] tools/kvm_stat: Fix kvm_exit filter name Gavin Shan
2019-12-10 8:45 ` Vitaly Kuznetsov [this message]
2019-12-10 23:52 ` Gavin Shan
2019-12-11 12:15 ` Vitaly Kuznetsov
2019-12-12 2:49 ` Gavin Shan
2020-01-18 19:18 ` Paolo Bonzini
2020-01-19 22:30 ` Gavin Shan
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=871rtcd0wo.fsf@vitty.brq.redhat.com \
--to=vkuznets@redhat.com \
--cc=drjones@redhat.com \
--cc=gshan@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.