lkml.org 
[lkml]   [2023]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[Patch v4 05/18] KVM: x86/mmu: Add split_shadow_page_cache pages to global count of MMU cache pages
    From
    Add pages in split_shadow_page_cache to the global counter
    kvm_total_unused_cached_pages. These pages will be freed by MMU shrinker
    in future commit.

    Signed-off-by: Vipin Sharma <vipinsh@google.com>
    ---
    arch/x86/kvm/mmu/mmu.c | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
    index df8dcb7e5de7..0ebb8a2eaf47 100644
    --- a/arch/x86/kvm/mmu/mmu.c
    +++ b/arch/x86/kvm/mmu/mmu.c
    @@ -6149,7 +6149,9 @@ static void mmu_free_vm_memory_caches(struct kvm *kvm)
    {
    kvm_mmu_free_memory_cache(&kvm->arch.split_desc_cache);
    kvm_mmu_free_memory_cache(&kvm->arch.split_page_header_cache);
    - kvm_mmu_free_memory_cache(&kvm->arch.split_shadow_page_cache);
    + mutex_lock(&kvm->slots_lock);
    + mmu_free_sp_memory_cache(&kvm->arch.split_shadow_page_cache);
    + mutex_unlock(&kvm->slots_lock);
    }

    void kvm_mmu_uninit_vm(struct kvm *kvm)
    @@ -6303,7 +6305,7 @@ static int topup_split_caches(struct kvm *kvm)
    if (r)
    return r;

    - return kvm_mmu_topup_memory_cache(&kvm->arch.split_shadow_page_cache, 1);
    + return mmu_topup_sp_memory_cache(&kvm->arch.split_shadow_page_cache, 1);
    }

    static struct kvm_mmu_page *shadow_mmu_get_sp_for_split(struct kvm *kvm, u64 *huge_sptep)
    @@ -6328,6 +6330,7 @@ static struct kvm_mmu_page *shadow_mmu_get_sp_for_split(struct kvm *kvm, u64 *hu
    /* Direct SPs do not require a shadowed_info_cache. */
    caches.page_header_cache = &kvm->arch.split_page_header_cache;
    caches.shadow_page_cache = &kvm->arch.split_shadow_page_cache;
    + caches.count_shadow_page_allocation = true;

    /* Safe to pass NULL for vCPU since requesting a direct SP. */
    return __kvm_mmu_get_shadow_page(kvm, NULL, &caches, gfn, role);
    --
    2.40.0.rc0.216.gc4246ad0f0-goog
    \
     
     \ /
      Last update: 2023-03-27 00:46    [W:8.316 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site