[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC v2 03/12] x86: do a revert of e871e80c38547d9faefc6604532ba3e985e65873
Revert "x86: allow Meltdown band-aid to be disabled" in order to prepare for a final Meltdown mitigation. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- docs/misc/xen-command-line.markdown | 12 ------------ xen/arch/x86/domain.c | 7 ++----- xen/arch/x86/mm.c | 2 +- xen/arch/x86/smpboot.c | 17 +++-------------- xen/arch/x86/x86_64/entry.S | 2 -- 5 files changed, 6 insertions(+), 34 deletions(-) diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index f73990f7cd..f5214defbb 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -1911,18 +1911,6 @@ In the case that x2apic is in use, this option switches between physical and clustered mode. The default, given no hint from the **FADT**, is cluster mode. -### xpti -> `= <boolean>` - -> Default: `false` on AMD hardware -> Default: `true` everywhere else - -Override default selection of whether to isolate 64-bit PV guest page -tables. - -** WARNING: Not yet a complete isolation implementation, but better than -nothing. ** - ### xsave > `= <boolean>` diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index dbf4522e69..8589d856be 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -1509,13 +1509,10 @@ void paravirt_ctxt_switch_from(struct vcpu *v) void paravirt_ctxt_switch_to(struct vcpu *v) { - root_pgentry_t *root_pgt = this_cpu(root_pgt); unsigned long cr4; - if ( root_pgt ) - root_pgt[root_table_offset(PERDOMAIN_VIRT_START)] = - l4e_from_page(v->domain->arch.perdomain_l3_pg, - __PAGE_HYPERVISOR_RW); + this_cpu(root_pgt)[root_table_offset(PERDOMAIN_VIRT_START)] = + l4e_from_page(v->domain->arch.perdomain_l3_pg, __PAGE_HYPERVISOR_RW); cr4 = pv_guest_cr4_to_real_cr4(v); if ( unlikely(cr4 != read_cr4()) ) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 5a1b472432..c83f5224c1 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -3654,7 +3654,7 @@ long do_mmu_update( rc = mod_l4_entry(va, l4e_from_intpte(req.val), mfn, cmd == MMU_PT_UPDATE_PRESERVE_AD, v); if ( !rc ) - sync_guest = this_cpu(root_pgt); + sync_guest = true; break; case PGT_writable_page: diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index fe637dae40..37a7e59760 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -329,7 +329,7 @@ void start_secondary(void *unused) spin_debug_disable(); get_cpu_info()->xen_cr3 = 0; - get_cpu_info()->pv_cr3 = this_cpu(root_pgt) ? __pa(this_cpu(root_pgt)) : 0; + get_cpu_info()->pv_cr3 = __pa(this_cpu(root_pgt)); load_system_tables(); @@ -738,20 +738,14 @@ static int clone_mapping(const void *ptr, root_pgentry_t *rpt) return 0; } -static __read_mostly int8_t opt_xpti = -1; -boolean_param("xpti", opt_xpti); DEFINE_PER_CPU(root_pgentry_t *, root_pgt); static int setup_cpu_root_pgt(unsigned int cpu) { - root_pgentry_t *rpt; + root_pgentry_t *rpt = alloc_xen_pagetable(); unsigned int off; int rc; - if ( !opt_xpti ) - return 0; - - rpt = alloc_xen_pagetable(); if ( !rpt ) return -ENOMEM; @@ -1000,14 +994,10 @@ void __init smp_prepare_cpus(unsigned int max_cpus) stack_base[0] = stack_start; - if ( opt_xpti < 0 ) - opt_xpti = boot_cpu_data.x86_vendor != X86_VENDOR_AMD; - rc = setup_cpu_root_pgt(0); if ( rc ) panic("Error %d setting up PV root page table\n", rc); - if ( per_cpu(root_pgt, 0) ) - get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); + get_cpu_info()->pv_cr3 = __pa(per_cpu(root_pgt, 0)); set_nr_sockets(); @@ -1079,7 +1069,6 @@ void __init smp_prepare_boot_cpu(void) #endif get_cpu_info()->xen_cr3 = 0; - get_cpu_info()->pv_cr3 = 0; } static void diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S index 710c0616ba..f753eb4c02 100644 --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -46,7 +46,6 @@ restore_all_guest: movabs $DIRECTMAP_VIRT_START, %rcx mov %rdi, %rax and %rsi, %rdi - jz .Lrag_keep_cr3 and %r9, %rsi add %rcx, %rdi add %rcx, %rsi @@ -63,7 +62,6 @@ restore_all_guest: rep movsq mov %r9, STACK_CPUINFO_FIELD(xen_cr3)(%rdx) write_cr3 rax, rdi, rsi -.Lrag_keep_cr3: RESTORE_ALL testw $TRAP_syscall,4(%rsp) -- 2.13.6 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |