mbox series

[v2,0/3] KVM: x86: Include host suspended time in steal time.

Message ID 20240820043543.837914-1-suleiman@google.com (mailing list archive)
Headers show
Series KVM: x86: Include host suspended time in steal time. | expand

Message

Suleiman Souhlal Aug. 20, 2024, 4:35 a.m. UTC
This series makes it so that the time that the host is suspended is
included in guests' steal time.

When the host resumes from a suspend, the guest thinks any task
that was running during the suspend ran for a long time, even though
the effective run time was much shorter, which can end up having
negative effects with scheduling. This can be particularly noticeable
if the guest task was RT, as it can end up getting throttled for a
long time.

To mitigate this issue, we include the time that the host was
suspended in steal time, which lets the guest can subtract the
duration from the tasks' runtime.

(v1 was at https://lore.kernel.org/kvm/20240710074410.770409-1-suleiman@google.com/)

v1 -> v2:
- Accumulate suspend time at machine-independent kvm layer and track per-VCPU
  instead of per-VM.
- Document changes.

Suleiman Souhlal (3):
  KVM: Introduce kvm_total_suspend_ns().
  KVM: x86: Include host suspended time in steal time.
  KVM: x86: Document host suspend being included in steal time.

 Documentation/virt/kvm/x86/msr.rst |  6 ++++--
 arch/x86/include/asm/kvm_host.h    |  1 +
 arch/x86/kvm/x86.c                 | 11 ++++++++++-
 include/linux/kvm_host.h           |  2 ++
 virt/kvm/kvm_main.c                | 13 +++++++++++++
 5 files changed, 30 insertions(+), 3 deletions(-)

Comments

Sean Christopherson Sept. 25, 2024, 1:54 p.m. UTC | #1
+David W for his input.

On Tue, Aug 20, 2024, Suleiman Souhlal wrote:
> This series makes it so that the time that the host is suspended is
> included in guests' steal time.
> 
> When the host resumes from a suspend, the guest thinks any task
> that was running during the suspend ran for a long time, even though
> the effective run time was much shorter, which can end up having
> negative effects with scheduling. This can be particularly noticeable
> if the guest task was RT, as it can end up getting throttled for a
> long time.
> 
> To mitigate this issue, we include the time that the host was
> suspended in steal time, which lets the guest can subtract the
> duration from the tasks' runtime.
> 
> (v1 was at https://lore.kernel.org/kvm/20240710074410.770409-1-suleiman@google.com/)
> 
> v1 -> v2:
> - Accumulate suspend time at machine-independent kvm layer and track per-VCPU
>   instead of per-VM.
> - Document changes.
> 
> Suleiman Souhlal (3):
>   KVM: Introduce kvm_total_suspend_ns().
>   KVM: x86: Include host suspended time in steal time.
>   KVM: x86: Document host suspend being included in steal time.
> 
>  Documentation/virt/kvm/x86/msr.rst |  6 ++++--
>  arch/x86/include/asm/kvm_host.h    |  1 +
>  arch/x86/kvm/x86.c                 | 11 ++++++++++-
>  include/linux/kvm_host.h           |  2 ++
>  virt/kvm/kvm_main.c                | 13 +++++++++++++
>  5 files changed, 30 insertions(+), 3 deletions(-)
> 
> -- 
> 2.46.0.184.g6999bdac58-goog
>