Thread (10 messages) 10 messages, 5 authors, 2010-05-26

Re: [Patch 1/4] Allow arch-specific cleanup before breakpoint unregistration

From: Frederic Weisbecker <hidden>
Date: 2010-05-26 17:23:21
Also in: lkml

Possibly related (same subject, not in this thread)

On Wed, May 26, 2010 at 10:47:42PM +0530, K.Prasad wrote:
On Wed, May 26, 2010 at 10:54:41AM +0100, David Howells wrote:
quoted
K.Prasad [off-list ref] wrote:
quoted
quoted
My understanding is weak function definitions must appear in a different C
file than their call sites to work on some toolchains.
Atleast, there are quite a few precedents inside the Linux kernel for
__weak functions being invoked from the file in which they are defined
(arch_hwblk_init, arch_enable_nonboot_cpus_begin and hw_perf_disable to
name a few).
Moreover the online GCC docs haven't any such constraints mentioned.
I've seen problems in this area.  gcc sometimes inlines a weak function that's
in the same file as the call point.
We've seen such behaviour even otherwise....even with noinline attribute
in place. I'm not sure if this gcc fix
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16922) helped correct the
behaviour, but the lesson has been to not trust a function to be
inlined/remain non-inline consistently.

If we can't put the call to the function in the same file of its weak
definition, then perf is totally screwed.

And in fact it makes __weak basically useless and unusable. I guess
that happened in old gcc versions that have been fixed now.

Anyway, I'm personally fine with this patch (you can put my hack
if you want).

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help