Messages in this thread | | | From | Andi Kleen <> | Subject | Updated version of RD/WR FS/GS BASE patchkit | Date | Mon, 21 Mar 2016 09:16:00 -0700 |
| |
This is a reworked version of my older fsgsbase patchkit. Main changes: - Ported to new entry/* code, which simplified it somewhat - Now has a test program - Fixed ptrace/core dump support - Better documentation - Some minor fixes improvement
This adds kernel support for some Intel instructions that allow fast access to the FS and GS 64bit base. They need some changes to entry_64.S because they allow user to fully control the GS base.
Advantages: - NMIs (and other "paranoid" interrupts) avoid one RDMSR which makes them faster - User space can use these instructions, mainly for efficient context switching with user thread libraries - Context switches do not need to use MSR writes anymore to context switch FS/GS base >4GB. This will speed up applications that have enough thread local data that it won't fit below 4GB. - User space can use GS efficiently as an additional global pointer register
I also included one minor (unrelated) optimization to disable an unneeded old SWAPGS workaround.
-Andi
| |