On 15.08.2025 22:41, Andrew Cooper wrote: > Right now they're inline in {read,write}_gs_shadow(), but we're going to need > to use these elsewhere to support FRED.
But why "kern"? We're not dealing with GS in kernel / user terms, but in real / shadow ones. I'm also not quite happy with the double leading underscores, fwiw. As to using them elsewhere to support FRED: How can we when they use SWAPGS, which isn't available under FRED? > --- a/xen/arch/x86/include/asm/fsgsbase.h > +++ b/xen/arch/x86/include/asm/fsgsbase.h > @@ -32,6 +32,17 @@ static inline unsigned long __rdgsbase(void) > return base; > } > > +static inline unsigned long __rdgskern(void) > +{ > + unsigned long base; > + > + asm_inline volatile ( "swapgs\n\t" > + "rdgsbase %0\n\t" > + "swapgs" : "=r" (base) ); Again strictly speaking "=&r", if already you open-code rdgsbase() now. Jan