From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Zdenek Kaspar <zkaspar82@gmail.com>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: [PATCH 5.10 12/23] KVM: x86: Zap the oldest MMU pages, not the newest
Date: Thu, 25 Feb 2021 10:53:43 +0100 [thread overview]
Message-ID: <20210225092517.119149578@linuxfoundation.org> (raw)
In-Reply-To: <20210225092516.531932232@linuxfoundation.org>
From: Sean Christopherson <seanjc@google.com>
commit 8fc517267fb28576dfca2380cc2497a2454b8fae upstream.
Walk the list of MMU pages in reverse in kvm_mmu_zap_oldest_mmu_pages().
The list is FIFO, meaning new pages are inserted at the head and thus
the oldest pages are at the tail. Using a "forward" iterator causes KVM
to zap MMU pages that were just added, which obliterates guest
performance once the max number of shadow MMU pages is reached.
Fixes: 6b82ef2c9cf1 ("KVM: x86/mmu: Batch zap MMU pages when recycling oldest pages")
Reported-by: Zdenek Kaspar <zkaspar82@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210113205030.3481307-1-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kvm/mmu/mmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -2409,7 +2409,7 @@ static unsigned long kvm_mmu_zap_oldest_
return 0;
restart:
- list_for_each_entry_safe(sp, tmp, &kvm->arch.active_mmu_pages, link) {
+ list_for_each_entry_safe_reverse(sp, tmp, &kvm->arch.active_mmu_pages, link) {
/*
* Don't zap active root pages, the page itself can't be freed
* and zapping it will just force vCPUs to realloc and reload.
next prev parent reply other threads:[~2021-02-25 10:23 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-25 9:53 [PATCH 5.10 00/23] 5.10.19-rc1 review Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 01/23] bpf: Fix truncation handling for mod32 dst reg wrt zero Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 02/23] HID: make arrays usage and value to be the same Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 03/23] RDMA: Lift ibdev_to_node from rds to common code Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 04/23] nvme-rdma: Use ibdev_to_node instead of dereferencing ->dma_device Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 05/23] USB: quirks: sort quirk entries Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 06/23] usb: quirks: add quirk to start video capture on ELMO L-12F document camera reliable Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 07/23] ceph: downgrade warning from mdsmap decode to debug Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 08/23] ntfs: check for valid standard information attribute Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 09/23] Bluetooth: btusb: Some Qualcomm Bluetooth adapters stop working Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 10/23] arm64: tegra: Add power-domain for Tegra210 HDA Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 11/23] hwmon: (dell-smm) Add XPS 15 L502X to fan control blacklist Greg Kroah-Hartman
2021-02-25 9:53 ` Greg Kroah-Hartman [this message]
2021-02-25 9:53 ` [PATCH 5.10 13/23] mm: unexport follow_pte_pmd Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 14/23] mm: simplify follow_pte{,pmd} Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 15/23] KVM: do not assume PTE is writable after follow_pfn Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 16/23] mm: provide a saner PTE walking API for modules Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 17/23] KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped() Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 18/23] drm/xlnx: fix kmemleak by sending vblank_event in atomic_disable Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 19/23] NET: usb: qmi_wwan: Adding support for Cinterion MV31 Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 20/23] cxgb4: Add new T6 PCI device id 0x6092 Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 21/23] cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 22/23] kbuild: fix CONFIG_TRIM_UNUSED_KSYMS build for ppc64 Greg Kroah-Hartman
2021-02-25 9:53 ` [PATCH 5.10 23/23] scripts/recordmcount.pl: support big endian for ARCH sh Greg Kroah-Hartman
2021-02-25 11:47 ` [PATCH 5.10 00/23] 5.10.19-rc1 review Jon Hunter
2021-02-25 19:52 ` Guenter Roeck
2021-02-25 19:54 ` Pavel Machek
2021-02-25 21:35 ` Florian Fainelli
2021-02-26 2:24 ` Shuah Khan
2021-02-26 3:41 ` Ross Schmidt
2021-02-26 6:44 ` Hanjun Guo
2021-02-27 1:47 ` Hanjun Guo
2021-02-26 6:57 ` Naresh Kamboju
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=20210225092517.119149578@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=stable@vger.kernel.org \
--cc=zkaspar82@gmail.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.