From: Peter Xu <peterx@redhat.com>
To: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
Wanpeng Li <kernellwp@gmail.com>,
Krish Sadhukhan <krish.sadhukhan@oracle.com>
Subject: Re: [PATCH v2 3/3] KVM: X86: Tune PLE Window tracepoint
Date: Thu, 5 Sep 2019 10:25:31 +0800 [thread overview]
Message-ID: <20190905022531.GE31707@xz-x1> (raw)
In-Reply-To: <20190904173254.GJ24079@linux.intel.com>
On Wed, Sep 04, 2019 at 10:32:54AM -0700, Sean Christopherson wrote:
> On Thu, Aug 15, 2019 at 06:34:58PM +0800, Peter Xu wrote:
> > The PLE window tracepoint triggers even if the window is not changed,
> > and the wording can be a bit confusing too. One example line:
> >
> > kvm_ple_window: vcpu 0: ple_window 4096 (shrink 4096)
> >
> > It easily let people think of "the window now is 4096 which is
> > shrinked", but the truth is the value actually didn't change (4096).
> >
> > Let's only dump this message if the value really changed, and we make
> > the message even simpler like:
> >
> > kvm_ple_window: vcpu 4 old 4096 new 8192 (growed)
> >
> > Signed-off-by: Peter Xu <peterx@redhat.com>
> > ---
> > arch/x86/kvm/svm.c | 16 ++++++++--------
> > arch/x86/kvm/trace.h | 21 ++++++---------------
> > arch/x86/kvm/vmx/vmx.c | 14 ++++++++------
> > arch/x86/kvm/x86.c | 2 +-
> > 4 files changed, 23 insertions(+), 30 deletions(-)
> >
> > diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
> > index d685491fce4d..d5cb6b5a9254 100644
> > --- a/arch/x86/kvm/svm.c
> > +++ b/arch/x86/kvm/svm.c
> > @@ -1269,11 +1269,11 @@ static void grow_ple_window(struct kvm_vcpu *vcpu)
> > pause_filter_count_grow,
> > pause_filter_count_max);
> >
> > - if (control->pause_filter_count != old)
> > + if (control->pause_filter_count != old) {
> > mark_dirty(svm->vmcb, VMCB_INTERCEPTS);
> > -
> > - trace_kvm_ple_window_grow(vcpu->vcpu_id,
> > - control->pause_filter_count, old);
> > + trace_kvm_ple_window_update(vcpu->vcpu_id,
> > + control->pause_filter_count, old);
> > + }
> > }
> >
> > static void shrink_ple_window(struct kvm_vcpu *vcpu)
> > @@ -1287,11 +1287,11 @@ static void shrink_ple_window(struct kvm_vcpu *vcpu)
> > pause_filter_count,
> > pause_filter_count_shrink,
> > pause_filter_count);
> > - if (control->pause_filter_count != old)
> > + if (control->pause_filter_count != old) {
> > mark_dirty(svm->vmcb, VMCB_INTERCEPTS);
> > -
> > - trace_kvm_ple_window_shrink(vcpu->vcpu_id,
> > - control->pause_filter_count, old);
> > + trace_kvm_ple_window_update(vcpu->vcpu_id,
> > + control->pause_filter_count, old);
> > + }
> > }
> >
> > static __init int svm_hardware_setup(void)
> > diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h
> > index 76a39bc25b95..97df9d7cae71 100644
> > --- a/arch/x86/kvm/trace.h
> > +++ b/arch/x86/kvm/trace.h
> > @@ -890,36 +890,27 @@ TRACE_EVENT(kvm_pml_full,
> > TP_printk("vcpu %d: PML full", __entry->vcpu_id)
> > );
> >
> > -TRACE_EVENT(kvm_ple_window,
> > - TP_PROTO(bool grow, unsigned int vcpu_id, int new, int old),
> > - TP_ARGS(grow, vcpu_id, new, old),
> > +TRACE_EVENT(kvm_ple_window_update,
> > + TP_PROTO(unsigned int vcpu_id, int new, int old),
> > + TP_ARGS(vcpu_id, new, old),
> >
> > TP_STRUCT__entry(
> > - __field( bool, grow )
> > __field( unsigned int, vcpu_id )
> > __field( int, new )
> > __field( int, old )
>
> Not your code, but these should really be 'unsigned int', especially now
> that they are directly compared when printing "growed" versus "shrinked".
> For SVM it doesn't matter since the underlying hardware fields are only
> 16 bits, but on VMX they're 32 bits, e.g. theoretically userspace could
> set ple_window and ple_window_max to a negative value.
>
> The ple_window variable in struct vcpu_vmx and local snapshots of the
> field should also be updated, but that can be done separately.
Indeed. Let me add a separated patch. Thanks,
--
Peter Xu
prev parent reply other threads:[~2019-09-05 2:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-15 10:34 [PATCH v2 0/3] KVM: X86: Some tracepoint enhancements Peter Xu
2019-08-15 10:34 ` [PATCH v2 1/3] KVM: X86: Trace vcpu_id for vmexit Peter Xu
2019-09-04 17:26 ` Sean Christopherson
2019-09-05 2:15 ` Peter Xu
2019-09-05 15:56 ` Sean Christopherson
2019-08-15 10:34 ` [PATCH v2 2/3] KVM: X86: Remove tailing newline for tracepoints Peter Xu
2019-09-04 17:27 ` Sean Christopherson
2019-08-15 10:34 ` [PATCH v2 3/3] KVM: X86: Tune PLE Window tracepoint Peter Xu
2019-09-04 17:32 ` Sean Christopherson
2019-09-05 2:25 ` Peter Xu [this message]
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=20190905022531.GE31707@xz-x1 \
--to=peterx@redhat.com \
--cc=kernellwp@gmail.com \
--cc=krish.sadhukhan@oracle.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=sean.j.christopherson@intel.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 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).