[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/pagewalk: Remove opt_allow_superpage check from guest_can_use_l2_superpages()
commit 28d9a9a2d41759b9e5163037b759ac557aea767c Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Mon Jul 24 17:28:25 2017 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Tue Jul 25 18:48:37 2017 +0100 x86/pagewalk: Remove opt_allow_superpage check from guest_can_use_l2_superpages() The purpose of guest_walk_tables() is to match the behaviour of real hardware. A PV guest can have 2M superpages in its pagetables, via the M2P (and for dom0 via the initial P2M), even if the guest isn't permitted to create arbitrary 2M superpage mappings. guest_can_use_l2_superpages() checking opt_allow_superpage is a piece of PV guest policy enforcement, rather than its intended purpose of meaning "would hardware tolerate finding an L2 superpage with these control settings?" Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Tim Deegan <tim@xxxxxxx> Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- xen/include/asm-x86/guest_pt.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/xen/include/asm-x86/guest_pt.h b/xen/include/asm-x86/guest_pt.h index 72126d5..08031c8 100644 --- a/xen/include/asm-x86/guest_pt.h +++ b/xen/include/asm-x86/guest_pt.h @@ -205,15 +205,17 @@ static inline guest_l4e_t guest_l4e_from_gfn(gfn_t gfn, u32 flags) static inline bool guest_can_use_l2_superpages(const struct vcpu *v) { /* + * PV guests use Xen's paging settings. Being 4-level, 2M + * superpages are unconditionally supported. + * * The L2 _PAGE_PSE bit must be honoured in HVM guests, whenever * CR4.PSE is set or the guest is in PAE or long mode. * It's also used in the dummy PT for vcpus with CR0.PG cleared. */ - return (is_pv_vcpu(v) - ? opt_allow_superpage - : (GUEST_PAGING_LEVELS != 2 - || !hvm_paging_enabled(v) - || (v->arch.hvm_vcpu.guest_cr[4] & X86_CR4_PSE))); + return (is_pv_vcpu(v) || + GUEST_PAGING_LEVELS != 2 || + !hvm_paging_enabled(v) || + (v->arch.hvm_vcpu.guest_cr[4] & X86_CR4_PSE)); } static inline bool guest_can_use_l3_superpages(const struct domain *d) -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |