Messages in this thread | | | Date | Tue, 18 Oct 2022 11:13:50 -0700 | From | "H. Peter Anvin" <> | Subject | RE: [PATCH v3 4/6] x86/gsseg: move local i rq save/restore() into asm load gs index() |
| |
On October 18, 2022 10:25:31 AM PDT, "Li, Xin3" <xin3.li@intel.com> wrote: >> > static inline void native_load_gs_index(unsigned int selector) { >> > - unsigned long flags; >> > - >> > - local_irq_save(flags); >> > asm_load_gs_index(selector); >> > - local_irq_restore(flags); >> > } >> >> static inline void native_load_gs_index(unsigned int selector) { >> unsigned long flags; >> >> if (cpu_feature_enabled(LKGS)) { >> native_lkgs(selector); >> } else { >> local_irq_save(flags); >> asm_load_gs_index(selector); >> local_irq_restore(flags); >> } >> } >> >> For paravirt enabled kernels we want during feature detection: >> >> if (cpu_feature_enabled(LKGS))) >> pv_ops.cpu.load_gs_index = native_lkgs; > >If we use static_cpu_has in native_load_gs_index > if (static_cpu_has(X86_FEATURE_LKGS)) { > native_lkgs(selector); > } > >We don't have to change pv_ops.cpu.load_gs_index, right? > >Thanks! >Xin > >> >> No? >> >> Thanks, >> >> tglx >
You don't *have* to, but it would mean a branch to a branch, so it would be more efficient. It would strictly be an optimization.
| |