Re: rfc/rft: use r10 as current on x86-64

From: Brian Gerst
Date: Tue Nov 22 2005 - 12:43:52 EST


Andi Kleen wrote:
On Tue, Nov 22, 2005 at 11:52:04AM -0500, Benjamin LaHaise wrote:
Hello Andi et al,

The patch below converts x86-64 to use r10 as the current pointer instead of gs:pcurrent. This results in a ~34KB savings in the code segment of the kernel. I've tested this with running a few regular applications, plus a few 32 bit binaries. If this patch is interesting, it probably makes sense to merge the thread info structure into the task_struct so that the assembly bits for syscall entry can be cleaned up. Comments?

I think you could get most of the benefit by just dropping
the volatile and "memory" from read_pda(). With that gcc would
usually CSE current into a register and it would would work essentially
the same way with only minor more .text overhead, but r10 would be still
available.

It seems that GCC is reluctant to use the extended registers anyways because of the rex prefix, so I don't think dedicating r10 to current will cause that many problems.

--
Brian Gerst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/