On Fri, 13 Feb 2004, Ralf Baechle wrote:
> > If we want to tolerate performance loss, then it's easily doable. That
> > can be done with the current setup, with a jump instruction to the
> > referred function added at the end and "__attribute__((used))" or perhaps
> > "asm("foo")" added to the function declaration.
> >
> > I can choose this path if we agree on it.
>
> The inline version is fundemantally fragile. The outline version has
> problems with getting reordered by later gcc which can be solved by
> putting a jump to the C function at the end; the C function also needs
> the right __attribute__s so it won't get eleminated by gcc.
This is exactly what I'm writing of ("the current setup" == what we now
have in the kernel; sorry for being ambiguous) -- except that I'd go for
the "asm("foo")" variant which does not require any additional
__attribute__s and should work at least since gcc 2.95 (and which I like
better).
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
|