Re: [patch] i386: use C code for current_thread_info()

From: Chuck Ebbert
Date: Sun Jun 11 2006 - 16:48:13 EST


In-Reply-To: <Pine.LNX.4.64.0606111225380.5498@xxxxxxxxxxx>

On Sun, 11 Jun 2006 12:33:10 -0700, Linus Torbalds wrote:

> On Sun, 11 Jun 2006, Chuck Ebbert wrote:
> >
> > Using C code for current_thread_info() lets the compiler optimize it.
>
> Ok, me likee. I just worry that this might break some older gcc version.
> Have you checked with gcc-3.2 or something?

I just tried gcc 3.3.3 and the kernel gets a little bigger but it boots
and runs OK. That's the oldest compiler I can find.

text data bss dec hex filename
3593627 559864 342728 4496219 449b5b 2.6.17-rc6-32-post/vmlinux
3591371 559864 342728 4493963 44928b 2.6.17-rc6-32/vmlinux
+2256

Looking at the generated code, it seems the compiler just makes dumb
choices and tends to recompute current_thread_info() in unlikely code
paths even when there is no register pressure. 4.0.2 makes better
choices.

--
Chuck

-
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/