lkml.org 
[lkml]   [2021]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.11 556/775] KVM: x86/mmu: Expand collapsible SPTE zap for TDP MMU to ZONE_DEVICE and HugeTLB pages
    Date
    From: Sean Christopherson <seanjc@google.com>

    [ Upstream commit c060c72ffeb448fbb5864faa1f672ebfe14dd25f ]

    Zap SPTEs that are backed by ZONE_DEVICE pages when zappings SPTEs to
    rebuild them as huge pages in the TDP MMU. ZONE_DEVICE huge pages are
    managed differently than "regular" pages and are not compound pages.
    Likewise, PageTransCompoundMap() will not detect HugeTLB, so switch
    to PageCompound().

    This matches the similar check in kvm_mmu_zap_collapsible_spte.

    Cc: Ben Gardon <bgardon@google.com>
    Fixes: 14881998566d ("kvm: x86/mmu: Support disabling dirty logging for the tdp MMU")
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Message-Id: <20210213005015.1651772-2-seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/kvm/mmu/tdp_mmu.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c
    index b56d604809b8a..17976998bffbc 100644
    --- a/arch/x86/kvm/mmu/tdp_mmu.c
    +++ b/arch/x86/kvm/mmu/tdp_mmu.c
    @@ -1067,7 +1067,8 @@ static void zap_collapsible_spte_range(struct kvm *kvm,

    pfn = spte_to_pfn(iter.old_spte);
    if (kvm_is_reserved_pfn(pfn) ||
    - !PageTransCompoundMap(pfn_to_page(pfn)))
    + (!PageCompound(pfn_to_page(pfn)) &&
    + !kvm_is_zone_device_pfn(pfn)))
    continue;

    tdp_mmu_set_spte(kvm, &iter, 0);
    --
    2.27.0


    \
     
     \ /
      Last update: 2021-03-02 14:40    [W:2.127 / U:0.420 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site