mmu.c (61d65f2dc766c70673d45a4b787f49317384642c) mmu.c (b146a9b34aed3cfa6edc058830c906a2b718fba5)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * This module enables machines with Intel VT-x extensions to run virtual
6 * machines without emulation or binary translation.
7 *
8 * MMU support

--- 1578 unchanged lines hidden (view full) ---

1587 }
1588 return young;
1589}
1590
1591bool kvm_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range)
1592{
1593 bool young = false;
1594
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * This module enables machines with Intel VT-x extensions to run virtual
6 * machines without emulation or binary translation.
7 *
8 * MMU support

--- 1578 unchanged lines hidden (view full) ---

1587 }
1588 return young;
1589}
1590
1591bool kvm_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range)
1592{
1593 bool young = false;
1594
1595 if (kvm_memslots_have_rmaps(kvm))
1595 if (kvm_memslots_have_rmaps(kvm)) {
1596 write_lock(&kvm->mmu_lock);
1596 young = kvm_rmap_age_gfn_range(kvm, range, false);
1597 young = kvm_rmap_age_gfn_range(kvm, range, false);
1598 write_unlock(&kvm->mmu_lock);
1599 }
1597
1598 if (tdp_mmu_enabled)
1599 young |= kvm_tdp_mmu_age_gfn_range(kvm, range);
1600
1601 return young;
1602}
1603
1604bool kvm_test_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range)
1605{
1606 bool young = false;
1607
1600
1601 if (tdp_mmu_enabled)
1602 young |= kvm_tdp_mmu_age_gfn_range(kvm, range);
1603
1604 return young;
1605}
1606
1607bool kvm_test_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range)
1608{
1609 bool young = false;
1610
1608 if (kvm_memslots_have_rmaps(kvm))
1611 if (kvm_memslots_have_rmaps(kvm)) {
1612 write_lock(&kvm->mmu_lock);
1609 young = kvm_rmap_age_gfn_range(kvm, range, true);
1613 young = kvm_rmap_age_gfn_range(kvm, range, true);
1614 write_unlock(&kvm->mmu_lock);
1615 }
1610
1611 if (tdp_mmu_enabled)
1612 young |= kvm_tdp_mmu_test_age_gfn(kvm, range);
1613
1614 return young;
1615}
1616
1617static void kvm_mmu_check_sptes_at_free(struct kvm_mmu_page *sp)

--- 6048 unchanged lines hidden ---
1616
1617 if (tdp_mmu_enabled)
1618 young |= kvm_tdp_mmu_test_age_gfn(kvm, range);
1619
1620 return young;
1621}
1622
1623static void kvm_mmu_check_sptes_at_free(struct kvm_mmu_page *sp)

--- 6048 unchanged lines hidden ---