Re: [rfc 37/45] x86_64: Support for fast per cpu operations

David Miller
2007-11-20T02:19:19Z

From: "H. Peter Anvin" <hpa@zytor.com>
Date: Mon, 19 Nov 2007 18:00:23 -0800

> Christoph Lameter wrote:
> > Support fast cpu ops in x86_64 by providing a series of functions that
> > generate the proper instructions. Define CONFIG_FAST_CPU_OPS so that core code
> > can exploit the availability of fast per cpu operations.
> >
> > Signed-off-by: Christoph Lameter <clameter@sgi.com>
>
> There was, at some point, discussion about using the gcc TLS mechanism,
> which should permit even better code to be generated. Unfortunately, it
> would require gcc to be able to reference %gs instead of %fs (and vice
> versa for i386), which I don't think is available in anything except
> maybe the most cutting-edge version of gcc.

You can't use __thread because GCC will cache __thread computed
addresses across context switches and cpu changes.

It's been tried before on powerpc, it doesn't work.