From: Wanpeng Li <kernellwp@gmail.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Sean Christopherson <seanjc@google.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>,
Wanpeng Li <wanpengli@tencent.com>,
Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
Thomas Gleixner <tglx@linutronix.de>,
Michael Tokarev <mjt@tls.msk.ru>
Subject: [PATCH v2 0/3] KVM: Properly account for guest CPU time
Date: Tue, 13 Apr 2021 15:16:06 +0800 [thread overview]
Message-ID: <1618298169-3831-1-git-send-email-wanpengli@tencent.com> (raw)
The bugzilla https://bugzilla.kernel.org/show_bug.cgi?id=209831
reported that the guest time remains 0 when running a while true
loop in the guest.
The commit 87fa7f3e98a131 ("x86/kvm: Move context tracking where it
belongs") moves guest_exit_irqoff() close to vmexit breaks the
tick-based time accouting when the ticks that happen after IRQs are
disabled are incorrectly accounted to the host/system time. This is
because we exit the guest state too early.
This patchset splits both context tracking logic and the time accounting
logic from guest_enter/exit_irqoff(), keep context tracking around the
actual vmentry/exit code, have the virt time specific helpers which
can be placed at the proper spots in kvm. In addition, it will not
break the world outside of x86.
v1 -> v2:
* split context_tracking from guest_enter/exit_irqoff
* provide separate vtime accounting functions for consistent
* place the virt time specific helpers at the proper splot
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Michael Tokarev <mjt@tls.msk.ru>
Wanpeng Li (3):
context_tracking: Split guest_enter/exit_irqoff
context_tracking: Provide separate vtime accounting functions
x86/kvm: Fix vtime accounting
arch/x86/kvm/svm/svm.c | 6 ++-
arch/x86/kvm/vmx/vmx.c | 6 ++-
arch/x86/kvm/x86.c | 1 +
include/linux/context_tracking.h | 84 +++++++++++++++++++++++++++++++---------
4 files changed, 74 insertions(+), 23 deletions(-)
--
2.7.4
next reply other threads:[~2021-04-13 7:16 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-13 7:16 Wanpeng Li [this message]
2021-04-13 7:16 ` [PATCH v2 1/3] context_tracking: Split guest_enter/exit_irqoff Wanpeng Li
2021-04-13 7:35 ` Christian Borntraeger
2021-04-13 7:38 ` Wanpeng Li
2021-04-13 7:48 ` Christian Borntraeger
2021-04-13 7:52 ` Wanpeng Li
2021-04-13 8:07 ` Christian Borntraeger
2021-04-13 7:16 ` [PATCH v2 2/3] context_tracking: Provide separate vtime accounting functions Wanpeng Li
2021-04-13 7:16 ` [PATCH v2 3/3] x86/kvm: Fix vtime accounting Wanpeng Li
2021-04-13 8:32 ` [PATCH v2 0/3] KVM: Properly account for guest CPU time Christian Borntraeger
2021-04-13 17:25 ` Sean Christopherson
2021-04-14 9:36 ` Wanpeng Li
2021-04-15 0:49 ` Sean Christopherson
2021-04-15 1:23 ` Wanpeng Li
2021-04-15 19:02 ` Sean Christopherson
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=1618298169-3831-1-git-send-email-wanpengli@tencent.com \
--to=kernellwp@gmail.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mjt@tls.msk.ru \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.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.