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 --- |