Re: [PATCH x86/mm 6/6] x86-64 ia32 ptrace get/putreg32 current task

Linus Torvalds
2007-11-29T18:33:32Z

On Thu, 29 Nov 2007, H. Peter Anvin wrote:
>
> The kernel uses %fs in 32-bit mode and %gs in 64-bit mode.

Yeah, thanks for reminding me about this particular insanity.

We should just make the kernel always use %gs for the percpu data. On
32-bit x86 there really is no reason to use %fs over %gs, other than the
purely historical one, and the fact that "f" is alphabetically before "g",
so it's the one you use first if you have no other preferences.

That way we can more easily share code, if the rules for fs/gs are the
same for 32-bit/64-bit code.

However, you also say:

> It is advantageous for user space to use the register the kernel
> typically won't, in order to speed up system call entry/exit.

but I'm not seeing the reason for that one. Care to comment more? (Yes,
there is often a latency from segment reload to use, but the reload
latency for system call exit *should* be entirely covered by the cost of
doing the system call return itself, no?)

Linus