]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: Don't set Accessed/Dirty bits for ZERO_PAGE
authorSean Christopherson <seanjc@google.com>
Fri, 29 Apr 2022 01:04:09 +0000 (01:04 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:23:44 +0000 (14:23 +0200)
commit545d15bcbdaad73ab8d841731710cb9a16443610
treec2c8c4dab7794c1e4f069cb8876d7632ba0f4085
parentca5470b3f1d3b224f43680ebb912cbb855e1ebcb
KVM: Don't set Accessed/Dirty bits for ZERO_PAGE

[ Upstream commit c80716dfbd00fdddc424e36704e12254c21e9376 ]

Don't set Accessed/Dirty bits for a struct page with PG_reserved set,
i.e. don't set A/D bits for the ZERO_PAGE.  The ZERO_PAGE (or pages
depending on the architecture) should obviously never be written, and
similarly there's no point in marking it accessed as the page will never
be swapped out or reclaimed.  The comment in page-flags.h is quite clear
that PG_reserved pages should be managed only by their owner, and
strictly following that mandate also simplifies KVM's logic.

Fixes: 148bda399795 ("KVM: fix overflow of zero page refcount with ksm running")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20220429010416.2788472-4-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
virt/kvm/kvm_main.c