Messages in this thread | | | Date | Mon, 25 Mar 2019 14:05:40 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [RESEND PATCH v6 04/12] x86/fsgsbase/64: Enable FSGSBASE instructions in the helper functions |
| |
On Mon, 25 Mar 2019, Thomas Gleixner wrote:
> On Mon, 25 Mar 2019, Thomas Gleixner wrote: > > The whole point of FSGSBASE support is performance, right? > > > > So can please someone explain why having the following in the context > > switch path when it can be completely avoided is enhancing performance: > > > > - 4 x SWAPGS > > - 1 x RDMSR > > - 1 x WRMSR > > Corrrecting myself. That should be: > > RDGSBASE > WRGSBASE > > obviously. Still the point remains. > > > - 2 x local_irq_save() > > - 2 x local_irq_restore() > > > > Of course the local_irq_save/restore() pairs are utterly pointless because > > switch_to() runs with interrupts disabled already. > > > > SWAPGS instead needs: > > > > 1 x WRMSR > > > > and nothing else. > > > > So trading the single WRMSR against the above in the context switch path is > > gaining performance, right?
And even IF the sequences are faster than the single WRMSR, this does not justify the mixed bag of SWAPGS/FSGSBASE usage at all.
Thanks,
tglx
| |