* [PATCH 0/1] drop wrappers of SVM instructions @ 2025-04-02 14:54 Alexander M. Merritt 2025-04-02 14:54 ` [XEN PATCH 1/1] xen/x86: " Alexander M. Merritt 0 siblings, 1 reply; 4+ messages in thread From: Alexander M. Merritt @ 2025-04-02 14:54 UTC (permalink / raw) To: xen-devel Cc: Alexander M. Merritt, Jan Beulich, Andrew Cooper, Roger Pau Monné Part of cleanup following toolchain baseline upgrade. As the new toolchain baseline knows the SVM instructions, this series drops macros with SVM instructions, and updates SVM wrappers to use real instructions rather than bytecode. Resolves: xen-project/xen#204 Alexander M. Merritt (1): xen/x86: drop wrappers of SVM instructions xen/arch/x86/hvm/svm/svm.h | 14 +++----------- xen/arch/x86/include/asm/asm-defns.h | 12 ------------ 2 files changed, 3 insertions(+), 23 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [XEN PATCH 1/1] xen/x86: drop wrappers of SVM instructions 2025-04-02 14:54 [PATCH 0/1] drop wrappers of SVM instructions Alexander M. Merritt @ 2025-04-02 14:54 ` Alexander M. Merritt 2025-04-02 14:56 ` Andrew Cooper 0 siblings, 1 reply; 4+ messages in thread From: Alexander M. Merritt @ 2025-04-02 14:54 UTC (permalink / raw) To: xen-devel Cc: Alexander M. Merritt, Jan Beulich, Andrew Cooper, Roger Pau Monné The new toolchain baseline knows the SVM instructions. Resolves: xen-project/xen#204 Signed-off-by: Alexander M. Merritt <alexander@edera.dev> --- xen/arch/x86/hvm/svm/svm.h | 14 +++----------- xen/arch/x86/include/asm/asm-defns.h | 12 ------------ 2 files changed, 3 insertions(+), 23 deletions(-) diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h index beeaaab4f7..5c5e91a1ac 100644 --- a/xen/arch/x86/hvm/svm/svm.h +++ b/xen/arch/x86/hvm/svm/svm.h @@ -23,25 +23,17 @@ void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len); static inline void svm_vmload_pa(paddr_t vmcb) { - asm volatile ( - ".byte 0x0f,0x01,0xda" /* vmload */ - : : "a" (vmcb) : "memory" ); + asm volatile ( "vmload" : : "a" (vmcb) : "memory" ); } static inline void svm_vmsave_pa(paddr_t vmcb) { - asm volatile ( - ".byte 0x0f,0x01,0xdb" /* vmsave */ - : : "a" (vmcb) : "memory" ); + asm volatile ( "vmsave" : : "a" (vmcb) : "memory" ); } static inline void svm_invlpga(unsigned long linear, uint32_t asid) { - asm volatile ( - ".byte 0x0f,0x01,0xdf" - : /* output */ - : /* input */ - "a" (linear), "c" (asid) ); + asm volatile ( "invlpga" : /* output */ : /* input */ "a" (linear), "c" (asid) ); } /* diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h index 32d6b44910..5a64b42495 100644 --- a/xen/arch/x86/include/asm/asm-defns.h +++ b/xen/arch/x86/include/asm/asm-defns.h @@ -10,18 +10,6 @@ .endm #endif -.macro vmrun - .byte 0x0f, 0x01, 0xd8 -.endm - -.macro stgi - .byte 0x0f, 0x01, 0xdc -.endm - -.macro clgi - .byte 0x0f, 0x01, 0xdd -.endm - /* * Call a noreturn function. This could be JMP, but CALL results in a more * helpful backtrace. BUG is to catch functions which do decide to return... -- 2.45.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [XEN PATCH 1/1] xen/x86: drop wrappers of SVM instructions 2025-04-02 14:54 ` [XEN PATCH 1/1] xen/x86: " Alexander M. Merritt @ 2025-04-02 14:56 ` Andrew Cooper 2025-04-02 15:04 ` Alexander Merritt 0 siblings, 1 reply; 4+ messages in thread From: Andrew Cooper @ 2025-04-02 14:56 UTC (permalink / raw) To: Alexander M. Merritt, xen-devel; +Cc: Jan Beulich, Roger Pau Monné On 02/04/2025 3:54 pm, Alexander M. Merritt wrote: > The new toolchain baseline knows the SVM instructions. > > Resolves: xen-project/xen#204 > > Signed-off-by: Alexander M. Merritt <alexander@edera.dev> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, with a couple of notes. > --- > xen/arch/x86/hvm/svm/svm.h | 14 +++----------- > xen/arch/x86/include/asm/asm-defns.h | 12 ------------ > 2 files changed, 3 insertions(+), 23 deletions(-) > > diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h > index beeaaab4f7..5c5e91a1ac 100644 > --- a/xen/arch/x86/hvm/svm/svm.h > +++ b/xen/arch/x86/hvm/svm/svm.h > @@ -23,25 +23,17 @@ void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len); > > static inline void svm_vmload_pa(paddr_t vmcb) > { > - asm volatile ( > - ".byte 0x0f,0x01,0xda" /* vmload */ > - : : "a" (vmcb) : "memory" ); > + asm volatile ( "vmload" : : "a" (vmcb) : "memory" ); We tend to prefer :: for empty sections. > } > > static inline void svm_vmsave_pa(paddr_t vmcb) > { > - asm volatile ( > - ".byte 0x0f,0x01,0xdb" /* vmsave */ > - : : "a" (vmcb) : "memory" ); > + asm volatile ( "vmsave" : : "a" (vmcb) : "memory" ); > } > > static inline void svm_invlpga(unsigned long linear, uint32_t asid) > { > - asm volatile ( > - ".byte 0x0f,0x01,0xdf" > - : /* output */ > - : /* input */ > - "a" (linear), "c" (asid) ); > + asm volatile ( "invlpga" : /* output */ : /* input */ "a" (linear), "c" (asid) ); And here, the output/input comments are useless and can be dropped. I can fix both on commit if you're happy? ~Andrew ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [XEN PATCH 1/1] xen/x86: drop wrappers of SVM instructions 2025-04-02 14:56 ` Andrew Cooper @ 2025-04-02 15:04 ` Alexander Merritt 0 siblings, 0 replies; 4+ messages in thread From: Alexander Merritt @ 2025-04-02 15:04 UTC (permalink / raw) To: Andrew Cooper; +Cc: xen-devel, Jan Beulich, Roger Pau Monné On 2025-04-02 10:56, Andrew Cooper wrote: > On 02/04/2025 3:54 pm, Alexander M. Merritt wrote: > I can fix both on commit if you're happy? > > ~Andrew Noted for future updates. Yes please go ahead. -Alex ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-04-02 15:04 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-04-02 14:54 [PATCH 0/1] drop wrappers of SVM instructions Alexander M. Merritt 2025-04-02 14:54 ` [XEN PATCH 1/1] xen/x86: " Alexander M. Merritt 2025-04-02 14:56 ` Andrew Cooper 2025-04-02 15:04 ` Alexander Merritt
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.