[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 7/8] x86: also NOP out xen_cr3 restores of XPTI
... despite quite likely the gain being rather limited. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- v4: Split off from earlier patch. --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -583,7 +583,8 @@ ENTRY(common_interrupt) CR4_PV32_RESTORE movq %rsp,%rdi callq do_IRQ - mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)), \ + "", X86_FEATURE_NO_XPTI jmp ret_from_intr ENTRY(page_fault) @@ -665,7 +666,8 @@ handle_exception_saved: PERFC_INCR(exceptions, %rax, %rbx) mov (%rdx, %rax, 8), %rdx INDIRECT_CALL %rdx - mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)), \ + "", X86_FEATURE_NO_XPTI testb $3,UREGS_cs(%rsp) jz restore_all_xen leaq VCPU_trap_bounce(%rbx),%rdx @@ -698,7 +700,8 @@ exception_with_ints_disabled: rep; movsq # make room for ec/ev 1: movq UREGS_error_code(%rsp),%rax # ec/ev movq %rax,UREGS_kernel_sizeof(%rsp) - mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)), \ + "", X86_FEATURE_NO_XPTI jmp restore_all_xen # return to fixup code /* No special register assumptions. */ @@ -849,7 +852,8 @@ handle_ist_exception: leaq exception_table(%rip),%rdx mov (%rdx, %rax, 8), %rdx INDIRECT_CALL %rdx - mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) + ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)), \ + "", X86_FEATURE_NO_XPTI cmpb $TRAP_nmi,UREGS_entry_vector(%rsp) jne ret_from_intr _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |