RE: [PATCH v12 10/18] x86/fsgsbase/64: Enable FSGSBASE instructions in helper functions

From: David Laight
Date: Wed May 20 2020 - 05:13:21 EST


From: Thomas Gleixner
> Sent: 19 May 2020 15:48
>
> David Laight <David.Laight@xxxxxxxxxx> writes:
> > From: Sasha Levin
> >> >> + native_swapgs();
> >> >> + gsbase = rdgsbase();
> >> >> + native_swapgs();
> >
> > Does local_irq_save() even do anything useful here.
> > You need to actually execute CLI, not just set a
> > flag that indicates interrupts shouldn't happen.
> > (Which is what I think local_irq_save() might do.)
>
> local_irq_save()
> raw_local_irq_save()
> arch_local_irq_save()
> arch_local_irq_disable()
> native_irq_disable()
> asm("CLI")

Ah, I was expecting software 'tricks' to avoid the expensive CLI.
But that call chain probably costs more - unless it is all inlined.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)