From: "Naveen N Rao (AMD)" <naveen@kernel.org>
To: <kvm@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Cc: Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
Vasant Hegde <vasant.hegde@amd.com>,
Maxim Levitsky <mlevitsk@redhat.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>
Subject: [PATCH 0/3] KVM: x86: Address performance degradation due to APICv inhibits
Date: Mon, 3 Feb 2025 22:33:00 +0530 [thread overview]
Message-ID: <cover.1738595289.git.naveen@kernel.org> (raw)
When AVIC is enabled (kvm_amd avic=1), guests with kernel-irqchip=on and
PIT in reinject mode (default configuration) show degraded performance.
This is because even though APICv is inhibited, we see other inhibits
being set/cleared causing contention on apicv_update_lock. Rework
inhibit code so that apicv_update_lock is not required unless APICv
state is changing. More details in patch 3.
In a test setup with two guests (-smp 16, -netdev tap,vhost=on, -device
virtio-net-pci,mq=on), multiple instances of netperf TCP_RR sending
traffic to the other guest, sar shows:
Without this patch series, kvm_amd avic=0 (default):
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens2 1323407.59 1323406.87 250722.47 126654.46 0.00 0.00 0.00 0.00
Without this patch series, kvm_amd avic=1:
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens2 1057711.25 1057697.51 200385.83 101225.23 0.00 0.00 0.00 0.00
We see ~20% degradation in packet rate.
With this patch series, kvm_amd avic=1:
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens2 1315433.91 1315434.46 249211.99 125891.47 0.00 0.00 0.00 0.00
- Naveen
Naveen N Rao (AMD) (3):
KVM: x86: hyper-v: Convert synic_auto_eoi_used to an atomic
KVM: x86: Remove use of apicv_update_lock when toggling guest debug
state
KVM: x86: Decouple APICv activation state from apicv_inhibit_reasons
arch/x86/include/asm/kvm_host.h | 14 ++--
arch/x86/kvm/hyperv.c | 17 ++---
arch/x86/kvm/x86.c | 125 ++++++++++++++++----------------
3 files changed, 72 insertions(+), 84 deletions(-)
base-commit: eb723766b1030a23c38adf2348b7c3d1409d11f0
--
2.48.1
next reply other threads:[~2025-02-03 17:10 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-03 17:03 Naveen N Rao (AMD) [this message]
2025-02-03 17:03 ` [PATCH 1/3] KVM: x86: hyper-v: Convert synic_auto_eoi_used to an atomic Naveen N Rao (AMD)
2025-02-04 1:30 ` Maxim Levitsky
2025-02-04 13:09 ` Naveen N Rao
2025-02-04 19:33 ` Sean Christopherson
2025-02-05 11:00 ` Naveen N Rao
2025-02-03 17:03 ` [PATCH 2/3] KVM: x86: Remove use of apicv_update_lock when toggling guest debug state Naveen N Rao (AMD)
2025-02-04 2:00 ` Maxim Levitsky
2025-02-04 13:10 ` Naveen N Rao
2025-02-04 14:25 ` Naveen N Rao
2025-02-04 17:51 ` Sean Christopherson
2025-02-04 17:58 ` Paolo Bonzini
2025-02-04 19:42 ` Maxim Levitsky
2025-02-05 11:13 ` Naveen N Rao
2025-02-03 17:03 ` [PATCH 3/3] KVM: x86: Decouple APICv activation state from apicv_inhibit_reasons Naveen N Rao (AMD)
2025-02-03 18:45 ` Sean Christopherson
2025-02-03 22:22 ` Paolo Bonzini
2025-02-03 23:46 ` Sean Christopherson
2025-02-04 1:23 ` Maxim Levitsky
2025-02-04 19:18 ` Sean Christopherson
2025-02-04 20:08 ` Maxim Levitsky
2025-02-05 1:41 ` Sean Christopherson
2025-02-05 10:54 ` Naveen N Rao
2025-02-05 11:36 ` Paolo Bonzini
2025-02-11 15:57 ` Naveen N Rao
2025-02-11 16:37 ` Sean Christopherson
2025-02-11 18:13 ` Naveen N Rao
2025-02-04 11:06 ` Naveen N Rao
2025-02-04 14:08 ` Paolo Bonzini
2025-02-11 14:37 ` Naveen N Rao
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=cover.1738595289.git.naveen@kernel.org \
--to=naveen@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mlevitsk@redhat.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=vasant.hegde@amd.com \
--cc=vkuznets@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.