From: Paolo Bonzini <pbonzini@redhat.com>
To: Jing Zhang <jingzhangos@google.com>, KVM <kvm@vger.kernel.org>,
KVMPPC <kvm-ppc@vger.kernel.org>,
Sean Christopherson <seanjc@google.com>,
Jim Mattson <jmattson@google.com>,
Peter Shier <pshier@google.com>, Oliver Upton <oupton@google.com>,
David Rientjes <rientjes@google.com>,
David Matlack <dmatlack@google.com>
Subject: Re: [PATCH v3 0/5] Linear and Logarithmic histogram statistics
Date: Wed, 11 Aug 2021 10:53:24 +0000 [thread overview]
Message-ID: <6865c425-30d2-9db6-7b6b-9ab665ddc352@redhat.com> (raw)
In-Reply-To: <20210802165633.1866976-1-jingzhangos@google.com>
On 02/08/21 18:56, Jing Zhang wrote:
> This patchset adds linear and logarithmic histogram stats support and extend
> some halt polling stats with histogram.
> Histogram stats is very useful when we need to know the distribution of some
> latencies or any other stuff like used memory size, huge page size, etc.
> Below is a snapshot for three logarithmic histogram stats added in this
> patchset. halt_poll_success_hist shows the distribution of wait time before a
> success polling. halt_poll_fail_hist shows the distribution of wait time before
> a fail polling. halt_wait_hist shows the distribution of wait time of a VCPU
> spending on wait after it is halted. The halt polling parameters is halt_poll_ns
> = 500000, halt_poll_ns_grow = 2, halt_poll_ns_grow_start = 10000,
> halt_poll_ns_shrink = 2;
> From the snapshot, not only we can get an intuitive overview of those latencies,
> but also we can tune the polling parameters based on this; For example, it shows
> that about 80% of successful polling is less than 132000 nanoseconds from
> halt_poll_success_hist, then it might be a good option to set halt_poll_ns as
> 132000 instead of 500000.
>
> halt_poll_success_hist:
> Range Bucket Value Percent Cumulative Percent
> [0, 1) 0 0.000% 0.000%
> [1, 2) 0 0.000% 0.000%
> [2, 4) 0 0.000% 0.000%
> [4, 8) 0 0.000% 0.000%
> [8, 16) 0 0.000% 0.000%
> [16, 32) 0 0.000% 0.000%
> [32, 64) 0 0.000% 0.000%
> [64, 128) 0 0.000% 0.000%
> [128, 256) 3 0.093% 0.093%
> [256, 512) 21 0.650% 0.743%
> [512, 1024) 43 1.330% 2.073%
> [1024, 2048) 279 8.632% 10.705%
> [2048, 4096) 253 7.828% 18.533%
> [4096, 8192) 595 18.410% 36.943%
> [8192, 16384) 274 8.478% 45.421%
> [16384, 32768) 351 10.860% 56.281%
> [32768, 65536) 343 10.613% 66.894%
> [65536, 131072) 421 13.026% 79.920%
> [131072, 262144) 459 14.202% 94.121%
> [262144, 524288) 190 5.879% 100.000%
>
>
> halt_poll_fail_hist:
> Range Bucket Value Percent Cumulative Percent
> [0, 1) 0 0.000% 0.000%
> [1, 2) 0 0.000% 0.000%
> [2, 4) 0 0.000% 0.000%
> [4, 8) 0 0.000% 0.000%
> [8, 16) 0 0.000% 0.000%
> [16, 32) 0 0.000% 0.000%
> [32, 64) 0 0.000% 0.000%
> [64, 128) 21 0.529% 0.529%
> [128, 256) 398 10.020% 10.549%
> [256, 512) 613 15.433% 25.982%
> [512, 1024) 437 11.002% 36.984%
> [1024, 2048) 264 6.647% 43.630%
> [2048, 4096) 302 7.603% 51.234%
> [4096, 8192) 350 8.812% 60.045%
> [8192, 16384) 488 12.286% 72.331%
> [16384, 32768) 258 6.495% 78.827%
> [32768, 65536) 227 5.715% 84.542%
> [65536, 131072) 232 5.841% 90.383%
> [131072, 262144) 246 6.193% 96.576%
> [262144, 524288) 136 3.424% 100.000%
>
>
> halt_wait_hist:
> Range Bucket Value Percent Cumulative Percent
> [0, 1) 0 0.000% 0.000%
> [1, 2) 0 0.000% 0.000%
> [2, 4) 0 0.000% 0.000%
> [4, 8) 0 0.000% 0.000%
> [8, 16) 0 0.000% 0.000%
> [16, 32) 0 0.000% 0.000%
> [32, 64) 0 0.000% 0.000%
> [64, 128) 0 0.000% 0.000%
> [128, 256) 0 0.000% 0.000%
> [256, 512) 0 0.000% 0.000%
> [512, 1024) 0 0.000% 0.000%
> [1024, 2048) 0 0.000% 0.000%
> [2048, 4096) 7 0.127% 0.127%
> [4096, 8192) 37 0.671% 0.798%
> [8192, 16384) 69 1.251% 2.049%
> [16384, 32768) 94 1.704% 3.753%
> [32768, 65536) 150 2.719% 6.472%
> [65536, 131072) 233 4.224% 10.696%
> [131072, 262144) 276 5.004% 15.700%
> [262144, 524288) 236 4.278% 19.978%
> [524288, 1.04858e+06) 176 3.191% 23.169%
> [1.04858e+06, 2.09715e+06) 94 16.207% 39.376%
> [2.09715e+06, 4.1943e+06) 1667 30.221% 69.598%
> [4.1943e+06, 8.38861e+06) 825 14.956% 84.554%
> [8.38861e+06, 1.67772e+07) 111 2.012% 86.566%
> [1.67772e+07, 3.35544e+07) 76 1.378% 87.944%
> [3.35544e+07, 6.71089e+07) 65 1.178% 89.123%
> [6.71089e+07, 1.34218e+08) 161 2.919% 92.041%
> [1.34218e+08, 2.68435e+08) 250 4.532% 96.574%
> [2.68435e+08, 5.36871e+08) 188 3.408% 99.982%
> [5.36871e+08, 1.07374e+09) 1 0.018% 100.000%
>
> ---
>
> * v2 -> v3
> - Rebase to kvm/queue, commit 8ad5e63649ff
> (KVM: Don't take mmu_lock for range invalidation unless necessary)
> - Specify inline explicitly for histogram stats update functions
> - Use array_index_nospec to clamp the index to histogram array size
> - Remove constant macros for histogram array size and bucket size
> - Addressed other comments from Paolo.
>
> * v1 -> v2
> - Rebase to kvm/queue, commit 1889228d80fe
> (KVM: selftests: smm_test: Test SMM enter from L2)
> - Break some changes to separate commits
> - Fix u64 division issue Reported-by: kernel test robot <lkp@intel.com>
> - Address a bunch of comments by David Matlack <dmatlack@google.com>
>
> [1] https://lore.kernel.org/kvm/20210706180350.2838127-1-jingzhangos@google.com
> [2] https://lore.kernel.org/kvm/20210714223033.742261-1-jingzhangos@google.com
>
> ---
>
> Jing Zhang (5):
> KVM: stats: Support linear and logarithmic histogram statistics
> KVM: stats: Update doc for histogram statistics
> KVM: selftests: Add checks for histogram stats bucket_size field
> KVM: stats: Add halt_wait_ns stats for all architectures
> KVM: stats: Add halt polling related histogram stats
>
> Documentation/virt/kvm/api.rst | 28 ++++++--
> arch/arm64/kvm/guest.c | 4 --
> arch/mips/kvm/mips.c | 4 --
> arch/powerpc/include/asm/kvm_host.h | 1 -
> arch/powerpc/kvm/book3s.c | 5 --
> arch/powerpc/kvm/book3s_hv.c | 18 ++++-
> arch/powerpc/kvm/booke.c | 5 --
> arch/s390/kvm/kvm-s390.c | 4 --
> arch/x86/kvm/x86.c | 4 --
> include/linux/kvm_host.h | 67 ++++++++++++++-----
> include/linux/kvm_types.h | 6 ++
> include/uapi/linux/kvm.h | 11 +--
> .../selftests/kvm/kvm_binary_stats_test.c | 12 ++++
> virt/kvm/binary_stats.c | 34 ++++++++++
> virt/kvm/kvm_main.c | 16 +++++
> 15 files changed, 165 insertions(+), 54 deletions(-)
>
>
> base-commit: 8ad5e63649ffaa9207b8fde932f3bd59a72c4c94
>
Queued, thanks.
Paolo
prev parent reply other threads:[~2021-08-11 10:53 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-02 16:56 [PATCH v3 0/5] Linear and Logarithmic histogram statistics Jing Zhang
2021-08-02 16:56 ` [PATCH v3 1/5] KVM: stats: Support linear and logarithmic " Jing Zhang
2021-08-11 10:53 ` Paolo Bonzini
2021-08-02 16:56 ` [PATCH v3 2/5] KVM: stats: Update doc for " Jing Zhang
2021-08-02 16:56 ` [PATCH v3 3/5] KVM: selftests: Add checks for histogram stats bucket_size field Jing Zhang
2021-08-02 16:56 ` [PATCH v3 4/5] KVM: stats: Add halt_wait_ns stats for all architectures Jing Zhang
2021-08-02 16:56 ` [PATCH v3 5/5] KVM: stats: Add halt polling related histogram stats Jing Zhang
2021-08-11 10:53 ` Paolo Bonzini [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=6865c425-30d2-9db6-7b6b-9ab665ddc352@redhat.com \
--to=pbonzini@redhat.com \
--cc=dmatlack@google.com \
--cc=jingzhangos@google.com \
--cc=jmattson@google.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=oupton@google.com \
--cc=pshier@google.com \
--cc=rientjes@google.com \
--cc=seanjc@google.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 read-only IMAP folder(s) and NNTP newsgroup(s).