Re: [PATCH 2/8] tracing: create automated trace defines

Frank Ch. Eigler
2009-04-21T21:29:36Z

Hi -

On Tue, Apr 21, 2009 at 05:17:17PM -0400, Steven Rostedt wrote:

> [...] Perhaps we should fork off gcc and ship Linux with its own
> compiler. This way we can optimize it for the kernel and not worry
> about any userland optimizations.

In this regard, kernel land does not seem that unlike user land.

> if (unlikely(err)) {
> __section__(".error_sect") {
> /* put error code here */
> }
> }
>
> And have gcc in the error section (if it is big enough perhaps) do:
> jmp .L123
> .L124 [...]
> [...]
> jmp .L124

> We could do the same for trace points. That is, any part of code that
> really would happen once in a while (error handling for one) we can move
> off to its own section and keep hot paths hot.

This is called -freorder-blocks or -freorder-blocks-and-partition
(depending on how far you would like gcc to move unlikely blocks).

- FChE