* /proc/kallsyms broken in 2.6.26-rc1-git6
@ 2008-05-09 17:41 Andi Kleen
2008-05-09 18:03 ` Paulo Marques
0 siblings, 1 reply; 17+ messages in thread
From: Andi Kleen @ 2008-05-09 17:41 UTC (permalink / raw)
To: linux-kernel
Haven't investigated why yet, but this doesn't seem right:
# cat /proc/kallsyms
0000000000000b0c N DW.aio.h.903a6d92.0
0000000000000b19 N DW.aio.h.903a6d92.1
0000000000000b24 N DW.aio.h.903a6d92.2
0000000000000bce N DW.task_io_accounting.h.8d8de327.0
0000000000000bec N DW.hrtimer.h.c23659c6.0
0000000000000bf5 N DW.hrtimer.h.c23659c6.1
0000000000000c00 N DW.hrtimer.h.c23659c6.2
0000000000000c06 N DW.hrtimer.h.c23659c6.3
0000000000000c28 N DW.hrtimer.h.c23659c6.4
0000000000000c2e N DW.hrtimer.h.c23659c6.5
...
ffffffff80337043 u idr_pre_get [i2c_core]
ffffc2000007573e ? DW.sched.h.920090ff.56 [i2c_core]
-Andi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-09 17:41 /proc/kallsyms broken in 2.6.26-rc1-git6 Andi Kleen
@ 2008-05-09 18:03 ` Paulo Marques
2008-05-09 19:36 ` Andi Kleen
0 siblings, 1 reply; 17+ messages in thread
From: Paulo Marques @ 2008-05-09 18:03 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel
Andi Kleen wrote:
> Haven't investigated why yet, but this doesn't seem right:
>
> # cat /proc/kallsyms
> 0000000000000b0c N DW.aio.h.903a6d92.0
> 0000000000000b19 N DW.aio.h.903a6d92.1
> 0000000000000b24 N DW.aio.h.903a6d92.2
> 0000000000000bce N DW.task_io_accounting.h.8d8de327.0
> 0000000000000bec N DW.hrtimer.h.c23659c6.0
> 0000000000000bf5 N DW.hrtimer.h.c23659c6.1
> 0000000000000c00 N DW.hrtimer.h.c23659c6.2
> 0000000000000c06 N DW.hrtimer.h.c23659c6.3
> 0000000000000c28 N DW.hrtimer.h.c23659c6.4
> 0000000000000c2e N DW.hrtimer.h.c23659c6.5
> ...
> ffffffff80337043 u idr_pre_get [i2c_core]
> ffffc2000007573e ? DW.sched.h.920090ff.56 [i2c_core]
Are you compiling with CONFIG_KALLSYMS_ALL?
If you are, kallsyms will store all the output of "nm -n vmlinux" no
matter what section the symbol belongs to...
--
Paulo Marques - www.grupopie.com
"C++ : increment the value of C and use the old one"
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-09 18:03 ` Paulo Marques
@ 2008-05-09 19:36 ` Andi Kleen
2008-05-09 19:59 ` Paulo Marques
0 siblings, 1 reply; 17+ messages in thread
From: Andi Kleen @ 2008-05-09 19:36 UTC (permalink / raw)
To: Paulo Marques; +Cc: linux-kernel
>> ffffffff80337043 u idr_pre_get [i2c_core]
>> ffffc2000007573e ? DW.sched.h.920090ff.56 [i2c_core]
>
> Are you compiling with CONFIG_KALLSYMS_ALL?
Yep.
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
> If you are, kallsyms will store all the output of "nm -n vmlinux" no
> matter what section the symbol belongs to...
Yes and? Surely that's not correct?
-Andi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-09 19:36 ` Andi Kleen
@ 2008-05-09 19:59 ` Paulo Marques
2008-05-09 23:16 ` Andi Kleen
2008-05-09 23:37 ` Alexey Dobriyan
0 siblings, 2 replies; 17+ messages in thread
From: Paulo Marques @ 2008-05-09 19:59 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel
Andi Kleen wrote:
>>> ffffffff80337043 u idr_pre_get [i2c_core]
>>> ffffc2000007573e ? DW.sched.h.920090ff.56 [i2c_core]
>> Are you compiling with CONFIG_KALLSYMS_ALL?
>
> Yep.
>
> CONFIG_KALLSYMS=y
> CONFIG_KALLSYMS_ALL=y
> # CONFIG_KALLSYMS_EXTRA_PASS is not set
>
>> If you are, kallsyms will store all the output of "nm -n vmlinux" no
>> matter what section the symbol belongs to...
>
> Yes and? Surely that's not correct?
That's not for me to judge, but I believe it has always been like that.
I just wanted to understand if you noticed a change in behavior (which
is probably a bug) or if it has always been like that but you just
noticed how ugly it is.
Maybe you also have some debug or markers configuration or something
that is generating extra symbols to a special section that is just
making the problem look worse now.
Anyway, I can change the way kallsyms works, but that has to be done
with some care because there are some userspace tools that read
/proc/kallsyms and we don't want to break those. A proper testing period
through -mm should take care of that, though.
--
Paulo Marques - www.grupopie.com
"All generalizations are false."
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-09 19:59 ` Paulo Marques
@ 2008-05-09 23:16 ` Andi Kleen
2008-05-12 9:55 ` Paulo Marques
2008-05-09 23:37 ` Alexey Dobriyan
1 sibling, 1 reply; 17+ messages in thread
From: Andi Kleen @ 2008-05-09 23:16 UTC (permalink / raw)
To: Paulo Marques; +Cc: linux-kernel
> That's not for me to judge, but I believe it has always been like that.
No, normally /proc/kallsyms looks similar to System.tap. Where are all
these DW.* symbols coming from? They didn't use to be there and don't
make any sense because they don't have any valid kernel addresses.
> I just wanted to understand if you noticed a change in behavior (which
> is probably a bug) or if it has always been like that but you just
> noticed how ugly it is.
I noticed a change in behavior.
> Maybe you also have some debug or markers configuration or something
> that is generating extra symbols to a special section that is just
> making the problem look worse now.
Nothing particular. I uploaded the config at
http://halobates.de/basil-config
> Anyway, I can change the way kallsyms works, but that has to be done
> with some care because there are some userspace tools that read
> /proc/kallsyms and we don't want to break those. A proper testing period
> through -mm should take care of that, though.
It's the other way round -- kallsyms changed and that change will likely
break programs.
-Andi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-09 19:59 ` Paulo Marques
2008-05-09 23:16 ` Andi Kleen
@ 2008-05-09 23:37 ` Alexey Dobriyan
2008-05-12 10:00 ` Paulo Marques
1 sibling, 1 reply; 17+ messages in thread
From: Alexey Dobriyan @ 2008-05-09 23:37 UTC (permalink / raw)
To: Paulo Marques; +Cc: Andi Kleen, linux-kernel
On Fri, May 09, 2008 at 08:59:56PM +0100, Paulo Marques wrote:
> Andi Kleen wrote:
>>>> ffffffff80337043 u idr_pre_get [i2c_core]
>>>> ffffc2000007573e ? DW.sched.h.920090ff.56 [i2c_core]
>>> Are you compiling with CONFIG_KALLSYMS_ALL?
>> Yep.
>> CONFIG_KALLSYMS=y
>> CONFIG_KALLSYMS_ALL=y
>> # CONFIG_KALLSYMS_EXTRA_PASS is not set
>>> If you are, kallsyms will store all the output of "nm -n vmlinux" no
>>> matter what section the symbol belongs to...
>> Yes and? Surely that's not correct?
>
> That's not for me to judge, but I believe it has always been like that.
*cough*
Here is how typical /proc/kallsyms looks like:
ffffffff80200000 A _text
ffffffff80200000 T startup_64
ffffffff802000b7 t ident_complete
ffffffff80200100 T secondary_startup_64
ffffffff802001a0 T init_rsp
ffffffff802001a8 t bad_address
ffffffff80201000 T init_level4_pgt
ffffffff80202000 T level3_ident_pgt
ffffffff80203000 T level3_kernel_pgt
ffffffff80204000 T level2_fixmap_pgt
ffffffff80205000 T level1_fixmap_pgt
ffffffff80206000 T level2_ident_pgt
ffffffff80207000 T level2_kernel_pgt
ffffffff80208000 T level2_spare_pgt
ffffffff80209000 T _stext
ffffffff80209000 t run_init_process
ffffffff80209020 t init_post
ffffffff80209120 T name_to_dev_t
ffffffff802092a0 t hard_disable_TSC
ffffffff802092b0 t hard_enable_TSC
ffffffff802092c0 T arch_randomize_brk
ffffffff80209300 T arch_align_stack
ffffffff80209350 T do_arch_prctl
ffffffff80209760 T disable_TSC
ffffffff802097c0 T set_tsc_mode
ffffffff80209830 T sys_vfork
ffffffff80209860 T sys_clone
ffffffff80209890 T sys_fork
ffffffff802098c0 T sys_execve
ffffffff80209940 T release_thread
ffffffff80209980 T __show_regs
ffffffff80209bc0 T show_regs
ffffffff80209c10 t __exit_idle
ffffffff80209c40 T enter_idle
ffffffff80209c70 T idle_notifier_register
ffffffff80209c90 T exit_idle
ffffffff80209cc0 T set_personality_64bit
ffffffff80209cf0 T get_wchan
ffffffff80209da0 T sys_arch_prctl
ffffffff80209dc0 T __switch_to
ffffffff8020a140 T cpu_idle
ffffffff8020a1f0 T start_thread
ffffffff8020a290 T get_tsc_mode
ffffffff8020a2c0 T prepare_to_copy
ffffffff8020a320 T default_idle
ffffffff8020a370 T flush_thread
ffffffff8020a460 T exit_thread
ffffffff8020a520 T copy_thread
ffffffff8020a6e0 t get_stack
ffffffff8020a740 t current_syscall
...
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-09 23:16 ` Andi Kleen
@ 2008-05-12 9:55 ` Paulo Marques
2008-05-12 10:08 ` Andi Kleen
0 siblings, 1 reply; 17+ messages in thread
From: Paulo Marques @ 2008-05-12 9:55 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel
Andi Kleen wrote:
>> That's not for me to judge, but I believe it has always been like that.
>
> No, normally /proc/kallsyms looks similar to System.tap. Where are all
> these DW.* symbols coming from?
Hum... System.map is generated by running
nm -n vmlinux | grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' > System.map
whereas the kallsyms symbols come from:
nm -n vmlinux
So, the only difference is the filter made by that "grep -v" to exclude
a few classes of symbols.
Maybe I lost myself in that expression, but it doesn't seem like it
would be able to filter out the symbols you're seeing. Are you sure the
same symbols don't appear in System.map?
> They didn't use to be there and don't
> make any sense because they don't have any valid kernel addresses.
I don't know enough about the markers infrastructure but I guess these
"addresses" are more like an "offset" into a markers structure that is
automatically produced by putting these symbols into a special section
that starts at offset 0.
>> I just wanted to understand if you noticed a change in behavior (which
>> is probably a bug) or if it has always been like that but you just
>> noticed how ugly it is.
>
> I noticed a change in behavior.
Ok.
>> Maybe you also have some debug or markers configuration or something
>> that is generating extra symbols to a special section that is just
>> making the problem look worse now.
>
> Nothing particular. I uploaded the config at
> http://halobates.de/basil-config
Well, my first suspects would be these:
CONFIG_KPROBES=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
>> Anyway, I can change the way kallsyms works, but that has to be done
>> with some care because there are some userspace tools that read
>> /proc/kallsyms and we don't want to break those. A proper testing period
>> through -mm should take care of that, though.
>
> It's the other way round -- kallsyms changed and that change will likely
> break programs.
I don't have the time right now to try your configuration and pinpoint
the problem, but if you can come up with a plan, like: "we need to
filter out symbols from the output of "nm" whose type is 'N'", I'll be
more than happy to provide a patch to fix it...
--
Paulo Marques - www.grupopie.com
"Nostalgia isn't what it used to be."
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-09 23:37 ` Alexey Dobriyan
@ 2008-05-12 10:00 ` Paulo Marques
2008-05-12 15:50 ` Cyrill Gorcunov
0 siblings, 1 reply; 17+ messages in thread
From: Paulo Marques @ 2008-05-12 10:00 UTC (permalink / raw)
To: Alexey Dobriyan; +Cc: Andi Kleen, linux-kernel
Alexey Dobriyan wrote:
> On Fri, May 09, 2008 at 08:59:56PM +0100, Paulo Marques wrote:
>> Andi Kleen wrote:
>>>[...]
>>> Yes and? Surely that's not correct?
>> That's not for me to judge, but I believe it has always been like that.
>
> *cough*
>
> Here is how typical /proc/kallsyms looks like:
>
> ffffffff80200000 A _text
> ffffffff80200000 T startup_64
> ffffffff802000b7 t ident_complete
> ffffffff80200100 T secondary_startup_64
This isn't helpful... the question is whether it is kallsyms misbehaving
and placing new symbols in the kernel image or if it is some other
change in the kernel that is generating new symbols that end up in the
symbol table.
My guess it is that it is the later, and in that case, from a kallsyms
standpoint "it has always been like that".
--
Paulo Marques - www.grupopie.com
"God is love. Love is blind. Ray Charles is blind. Ray Charles is God."
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-12 9:55 ` Paulo Marques
@ 2008-05-12 10:08 ` Andi Kleen
0 siblings, 0 replies; 17+ messages in thread
From: Andi Kleen @ 2008-05-12 10:08 UTC (permalink / raw)
To: Paulo Marques; +Cc: Andi Kleen, linux-kernel
> So, the only difference is the filter made by that "grep -v" to exclude
> a few classes of symbols.
>
> Maybe I lost myself in that expression, but it doesn't seem like it
> would be able to filter out the symbols you're seeing. Are you sure the
> same symbols don't appear in System.map?
They do, but that's also new.
>
> >They didn't use to be there and don't
> >make any sense because they don't have any valid kernel addresses.
>
> I don't know enough about the markers infrastructure but I guess these
> "addresses" are more like an "offset" into a markers structure that is
> automatically produced by putting these symbols into a special section
> that starts at offset 0.
I don't know too much about the markers implementation either and
if it's caused by then.
> Well, my first suspects would be these:
>
> CONFIG_KPROBES=y
> CONFIG_KRETPROBES=y
> CONFIG_HAVE_KPROBES=y
> CONFIG_HAVE_KRETPROBES=y
I've always had those enabled and afaik they don't generate any
magic symbols.
>
> >
> >It's the other way round -- kallsyms changed and that change will likely
> >break programs.
>
> I don't have the time right now to try your configuration and pinpoint
> the problem, but if you can come up with a plan, like: "we need to
> filter out symbols from the output of "nm" whose type is 'N'", I'll be
> more than happy to provide a patch to fix it...
man nm says
"N" The symbol is a debugging symbol.
while I'm not 100% sure what a debugging symbol is I suppose we don't
need those so yes please filter those out (both
out of System.map and out of kallsyms)
-Andi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-12 10:00 ` Paulo Marques
@ 2008-05-12 15:50 ` Cyrill Gorcunov
2008-05-12 17:23 ` Sam Ravnborg
0 siblings, 1 reply; 17+ messages in thread
From: Cyrill Gorcunov @ 2008-05-12 15:50 UTC (permalink / raw)
To: Paulo Marques; +Cc: Alexey Dobriyan, Andi Kleen, linux-kernel
[Paulo Marques - Mon, May 12, 2008 at 11:00:32AM +0100]
> Alexey Dobriyan wrote:
>> On Fri, May 09, 2008 at 08:59:56PM +0100, Paulo Marques wrote:
>>> Andi Kleen wrote:
>>>> [...]
>>>> Yes and? Surely that's not correct?
>>> That's not for me to judge, but I believe it has always been like that.
>> *cough*
>> Here is how typical /proc/kallsyms looks like:
>> ffffffff80200000 A _text
>> ffffffff80200000 T startup_64
>> ffffffff802000b7 t ident_complete
>> ffffffff80200100 T secondary_startup_64
>
> This isn't helpful... the question is whether it is kallsyms misbehaving
> and placing new symbols in the kernel image or if it is some other change
> in the kernel that is generating new symbols that end up in the symbol
> table.
>
> My guess it is that it is the later, and in that case, from a kallsyms
> standpoint "it has always been like that".
>
> --
> Paulo Marques - www.grupopie.com
>
>
If it help - I've taken Andi's config, compiled the kernel and
didn't find any screwed symbols (nor is System.map nor in /proc/kallsyms).
The kernel - today Linus's git tree:
---
commit 492c2e476eac010962850006c49df326919b284c
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sun May 11 17:09:41 2008 -0700
Linux 2.6.26-rc2
---
The diff btw Andi's config and new one is:
+CONFIG_PCSPKR_PLATFORM=y
-CONFIG_PCNET32_NAPI=y
- Cyrill -
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-12 15:50 ` Cyrill Gorcunov
@ 2008-05-12 17:23 ` Sam Ravnborg
2008-05-12 17:28 ` Cyrill Gorcunov
2008-05-13 9:54 ` Andi Kleen
0 siblings, 2 replies; 17+ messages in thread
From: Sam Ravnborg @ 2008-05-12 17:23 UTC (permalink / raw)
To: Cyrill Gorcunov; +Cc: Paulo Marques, Alexey Dobriyan, Andi Kleen, linux-kernel
On Mon, May 12, 2008 at 07:50:52PM +0400, Cyrill Gorcunov wrote:
> [Paulo Marques - Mon, May 12, 2008 at 11:00:32AM +0100]
> > Alexey Dobriyan wrote:
> >> On Fri, May 09, 2008 at 08:59:56PM +0100, Paulo Marques wrote:
> >>> Andi Kleen wrote:
> >>>> [...]
> >>>> Yes and? Surely that's not correct?
> >>> That's not for me to judge, but I believe it has always been like that.
> >> *cough*
> >> Here is how typical /proc/kallsyms looks like:
> >> ffffffff80200000 A _text
> >> ffffffff80200000 T startup_64
> >> ffffffff802000b7 t ident_complete
> >> ffffffff80200100 T secondary_startup_64
> >
> > This isn't helpful... the question is whether it is kallsyms misbehaving
> > and placing new symbols in the kernel image or if it is some other change
> > in the kernel that is generating new symbols that end up in the symbol
> > table.
> >
> > My guess it is that it is the later, and in that case, from a kallsyms
> > standpoint "it has always been like that".
> >
> > --
> > Paulo Marques - www.grupopie.com
> >
> >
>
> If it help - I've taken Andi's config, compiled the kernel and
> didn't find any screwed symbols (nor is System.map nor in /proc/kallsyms).
I expect it to be a toolchain issue. Andi is often running with gcc versions
that are very new (fresh from svn maybe). I dunno about binutils.
To reproduce I would expect that a very recent gcc/binutils is needed.
Andi?
Sam
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-12 17:23 ` Sam Ravnborg
@ 2008-05-12 17:28 ` Cyrill Gorcunov
2008-05-13 9:54 ` Andi Kleen
1 sibling, 0 replies; 17+ messages in thread
From: Cyrill Gorcunov @ 2008-05-12 17:28 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Paulo Marques, Alexey Dobriyan, Andi Kleen, linux-kernel
[Sam Ravnborg - Mon, May 12, 2008 at 07:23:23PM +0200]
| On Mon, May 12, 2008 at 07:50:52PM +0400, Cyrill Gorcunov wrote:
| > [Paulo Marques - Mon, May 12, 2008 at 11:00:32AM +0100]
| > > Alexey Dobriyan wrote:
| > >> On Fri, May 09, 2008 at 08:59:56PM +0100, Paulo Marques wrote:
| > >>> Andi Kleen wrote:
| > >>>> [...]
| > >>>> Yes and? Surely that's not correct?
| > >>> That's not for me to judge, but I believe it has always been like that.
| > >> *cough*
| > >> Here is how typical /proc/kallsyms looks like:
| > >> ffffffff80200000 A _text
| > >> ffffffff80200000 T startup_64
| > >> ffffffff802000b7 t ident_complete
| > >> ffffffff80200100 T secondary_startup_64
| > >
| > > This isn't helpful... the question is whether it is kallsyms misbehaving
| > > and placing new symbols in the kernel image or if it is some other change
| > > in the kernel that is generating new symbols that end up in the symbol
| > > table.
| > >
| > > My guess it is that it is the later, and in that case, from a kallsyms
| > > standpoint "it has always been like that".
| > >
| > > --
| > > Paulo Marques - www.grupopie.com
| > >
| > >
| >
| > If it help - I've taken Andi's config, compiled the kernel and
| > didn't find any screwed symbols (nor is System.map nor in /proc/kallsyms).
|
| I expect it to be a toolchain issue. Andi is often running with gcc versions
| that are very new (fresh from svn maybe). I dunno about binutils.
| To reproduce I would expect that a very recent gcc/binutils is needed.
| Andi?
|
| Sam
|
Probably, I've used:
gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.0.2)
sys-devel/binutils 2.18-r1
- Cyrill -
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-12 17:23 ` Sam Ravnborg
2008-05-12 17:28 ` Cyrill Gorcunov
@ 2008-05-13 9:54 ` Andi Kleen
2008-05-19 18:11 ` Sam Ravnborg
1 sibling, 1 reply; 17+ messages in thread
From: Andi Kleen @ 2008-05-13 9:54 UTC (permalink / raw)
To: Sam Ravnborg
Cc: Cyrill Gorcunov, Paulo Marques, Alexey Dobriyan, Andi Kleen,
linux-kernel
> I expect it to be a toolchain issue. Andi is often running with gcc versions
> that are very new (fresh from svn maybe). I dunno about binutils.
No actually that's a pretty old version from SUSE 10.2
gcc-4.1.3-29
binutils-2.17.50.0.5-21
This means i've been recently trying to get the x86-64 kernel to work
with the new gold linker from binutils mainline, but it's far from
booting yet and was not used here.
> To reproduce I would expect that a very recent gcc/binutils is needed.
> Andi?
Just a SUSE 10.2 toolchain. You can probably rpm2cpio it from any
SUSE mirror.
-Andi
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-13 9:54 ` Andi Kleen
@ 2008-05-19 18:11 ` Sam Ravnborg
2008-05-19 18:15 ` Cyrill Gorcunov
0 siblings, 1 reply; 17+ messages in thread
From: Sam Ravnborg @ 2008-05-19 18:11 UTC (permalink / raw)
To: Andi Kleen; +Cc: Cyrill Gorcunov, Paulo Marques, Alexey Dobriyan, linux-kernel
On Tue, May 13, 2008 at 11:54:37AM +0200, Andi Kleen wrote:
> > I expect it to be a toolchain issue. Andi is often running with gcc versions
> > that are very new (fresh from svn maybe). I dunno about binutils.
>
> No actually that's a pretty old version from SUSE 10.2
>
> gcc-4.1.3-29
> binutils-2.17.50.0.5-21
>
> This means i've been recently trying to get the x86-64 kernel to work
> with the new gold linker from binutils mainline, but it's far from
> booting yet and was not used here.
>
> > To reproduce I would expect that a very recent gcc/binutils is needed.
> > Andi?
>
> Just a SUSE 10.2 toolchain. You can probably rpm2cpio it from any
> SUSE mirror.
I have just commit the following that should fix it.
Sam
commit aab34ac8582303ef57b792710fc5dd5991477475
Author: Sam Ravnborg <sam@ravnborg.org>
Date: Mon May 19 20:07:58 2008 +0200
kbuild: filter away debug symbols from kernel symbols
Andi Kleen <andi@firstfloor.org>
reported that he saw a lot of symbols like this:
0000000000000b24 N DW.aio.h.903a6d92.2
0000000000000bce N DW.task_io_accounting.h.8d8de327.0
0000000000000bec N DW.hrtimer.h.c23659c6.0
in his System.map / kallsyms output.
Simple solution is to skip all debugging
symbols (they are marked 'N').
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Paulo Marques <pmarques@grupopie.com>
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 5d20a2e..ad2434b 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -108,6 +108,9 @@ static int read_symbol(FILE *in, struct sym_entry *s)
/* exclude also MIPS ELF local symbols ($L123 instead of .L123) */
else if (str[0] == '$')
return -1;
+ /* exclude debugging symbols */
+ else if (stype == 'N')
+ return -1;
/* include the type field in the symbol name, so that it gets
* compressed together */
diff --git a/scripts/mksysmap b/scripts/mksysmap
index 4390fab..6e133a0 100644
--- a/scripts/mksysmap
+++ b/scripts/mksysmap
@@ -32,6 +32,7 @@
# For System.map filter away:
# a - local absolute symbols
# U - undefined global symbols
+# N - debugging symbols
# w - local weak symbols
# readprofile starts reading symbols when _stext is found, and
@@ -40,5 +41,5 @@
# so we just ignore them to let readprofile continue to work.
# (At least sparc64 has __crc_ in the middle).
-$NM -n $1 | grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
+$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-19 18:11 ` Sam Ravnborg
@ 2008-05-19 18:15 ` Cyrill Gorcunov
2008-05-19 18:21 ` Sam Ravnborg
0 siblings, 1 reply; 17+ messages in thread
From: Cyrill Gorcunov @ 2008-05-19 18:15 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Andi Kleen, Paulo Marques, Alexey Dobriyan, linux-kernel
[Sam Ravnborg - Mon, May 19, 2008 at 08:11:18PM +0200]
| On Tue, May 13, 2008 at 11:54:37AM +0200, Andi Kleen wrote:
| > > I expect it to be a toolchain issue. Andi is often running with gcc versions
| > > that are very new (fresh from svn maybe). I dunno about binutils.
| >
| > No actually that's a pretty old version from SUSE 10.2
| >
| > gcc-4.1.3-29
| > binutils-2.17.50.0.5-21
| >
| > This means i've been recently trying to get the x86-64 kernel to work
| > with the new gold linker from binutils mainline, but it's far from
| > booting yet and was not used here.
| >
| > > To reproduce I would expect that a very recent gcc/binutils is needed.
| > > Andi?
| >
| > Just a SUSE 10.2 toolchain. You can probably rpm2cpio it from any
| > SUSE mirror.
|
| I have just commit the following that should fix it.
|
| Sam
|
| commit aab34ac8582303ef57b792710fc5dd5991477475
| Author: Sam Ravnborg <sam@ravnborg.org>
| Date: Mon May 19 20:07:58 2008 +0200
|
| kbuild: filter away debug symbols from kernel symbols
|
| Andi Kleen <andi@firstfloor.org>
| reported that he saw a lot of symbols like this:
|
| 0000000000000b24 N DW.aio.h.903a6d92.2
| 0000000000000bce N DW.task_io_accounting.h.8d8de327.0
| 0000000000000bec N DW.hrtimer.h.c23659c6.0
|
| in his System.map / kallsyms output.
|
| Simple solution is to skip all debugging
| symbols (they are marked 'N').
|
| Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
| Cc: Paulo Marques <pmarques@grupopie.com>
|
| diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
| index 5d20a2e..ad2434b 100644
| --- a/scripts/kallsyms.c
| +++ b/scripts/kallsyms.c
| @@ -108,6 +108,9 @@ static int read_symbol(FILE *in, struct sym_entry *s)
| /* exclude also MIPS ELF local symbols ($L123 instead of .L123) */
| else if (str[0] == '$')
| return -1;
| + /* exclude debugging symbols */
| + else if (stype == 'N')
| + return -1;
|
| /* include the type field in the symbol name, so that it gets
| * compressed together */
| diff --git a/scripts/mksysmap b/scripts/mksysmap
| index 4390fab..6e133a0 100644
| --- a/scripts/mksysmap
| +++ b/scripts/mksysmap
| @@ -32,6 +32,7 @@
| # For System.map filter away:
| # a - local absolute symbols
| # U - undefined global symbols
| +# N - debugging symbols
| # w - local weak symbols
|
| # readprofile starts reading symbols when _stext is found, and
| @@ -40,5 +41,5 @@
| # so we just ignore them to let readprofile continue to work.
| # (At least sparc64 has __crc_ in the middle).
|
| -$NM -n $1 | grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
| +$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
|
|
Hi Sam,
should not there be
toupper(stype) == 'N'
(just a guess)
- Cyrill -
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-19 18:15 ` Cyrill Gorcunov
@ 2008-05-19 18:21 ` Sam Ravnborg
2008-05-19 18:22 ` Cyrill Gorcunov
0 siblings, 1 reply; 17+ messages in thread
From: Sam Ravnborg @ 2008-05-19 18:21 UTC (permalink / raw)
To: Cyrill Gorcunov; +Cc: Andi Kleen, Paulo Marques, Alexey Dobriyan, linux-kernel
On Mon, May 19, 2008 at 10:15:43PM +0400, Cyrill Gorcunov wrote:
> [Sam Ravnborg - Mon, May 19, 2008 at 08:11:18PM +0200]
> | On Tue, May 13, 2008 at 11:54:37AM +0200, Andi Kleen wrote:
> | > > I expect it to be a toolchain issue. Andi is often running with gcc versions
> | > > that are very new (fresh from svn maybe). I dunno about binutils.
> | >
> | > No actually that's a pretty old version from SUSE 10.2
> | >
> | > gcc-4.1.3-29
> | > binutils-2.17.50.0.5-21
> | >
> | > This means i've been recently trying to get the x86-64 kernel to work
> | > with the new gold linker from binutils mainline, but it's far from
> | > booting yet and was not used here.
> | >
> | > > To reproduce I would expect that a very recent gcc/binutils is needed.
> | > > Andi?
> | >
> | > Just a SUSE 10.2 toolchain. You can probably rpm2cpio it from any
> | > SUSE mirror.
> |
> | I have just commit the following that should fix it.
> |
> | Sam
> |
> | commit aab34ac8582303ef57b792710fc5dd5991477475
> | Author: Sam Ravnborg <sam@ravnborg.org>
> | Date: Mon May 19 20:07:58 2008 +0200
> |
> | kbuild: filter away debug symbols from kernel symbols
> |
> | Andi Kleen <andi@firstfloor.org>
> | reported that he saw a lot of symbols like this:
> |
> | 0000000000000b24 N DW.aio.h.903a6d92.2
> | 0000000000000bce N DW.task_io_accounting.h.8d8de327.0
> | 0000000000000bec N DW.hrtimer.h.c23659c6.0
> |
> | in his System.map / kallsyms output.
> |
> | Simple solution is to skip all debugging
> | symbols (they are marked 'N').
> |
> | Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> | Cc: Paulo Marques <pmarques@grupopie.com>
> |
> | diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
> | index 5d20a2e..ad2434b 100644
> | --- a/scripts/kallsyms.c
> | +++ b/scripts/kallsyms.c
> | @@ -108,6 +108,9 @@ static int read_symbol(FILE *in, struct sym_entry *s)
> | /* exclude also MIPS ELF local symbols ($L123 instead of .L123) */
> | else if (str[0] == '$')
> | return -1;
> | + /* exclude debugging symbols */
> | + else if (stype == 'N')
> | + return -1;
> |
> | /* include the type field in the symbol name, so that it gets
> | * compressed together */
> | diff --git a/scripts/mksysmap b/scripts/mksysmap
> | index 4390fab..6e133a0 100644
> | --- a/scripts/mksysmap
> | +++ b/scripts/mksysmap
> | @@ -32,6 +32,7 @@
> | # For System.map filter away:
> | # a - local absolute symbols
> | # U - undefined global symbols
> | +# N - debugging symbols
> | # w - local weak symbols
> |
> | # readprofile starts reading symbols when _stext is found, and
> | @@ -40,5 +41,5 @@
> | # so we just ignore them to let readprofile continue to work.
> | # (At least sparc64 has __crc_ in the middle).
> |
> | -$NM -n $1 | grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
> | +$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
> |
> |
>
> Hi Sam,
>
> should not there be
>
> toupper(stype) == 'N'
>
> (just a guess)
I conisered this. But decided that we could do so if we needed it later.
In the nm output I got they were all 'N'.
Sam
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: /proc/kallsyms broken in 2.6.26-rc1-git6
2008-05-19 18:21 ` Sam Ravnborg
@ 2008-05-19 18:22 ` Cyrill Gorcunov
0 siblings, 0 replies; 17+ messages in thread
From: Cyrill Gorcunov @ 2008-05-19 18:22 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Andi Kleen, Paulo Marques, Alexey Dobriyan, linux-kernel
[Sam Ravnborg - Mon, May 19, 2008 at 08:21:15PM +0200]
| On Mon, May 19, 2008 at 10:15:43PM +0400, Cyrill Gorcunov wrote:
| > [Sam Ravnborg - Mon, May 19, 2008 at 08:11:18PM +0200]
| > | On Tue, May 13, 2008 at 11:54:37AM +0200, Andi Kleen wrote:
| > | > > I expect it to be a toolchain issue. Andi is often running with gcc versions
| > | > > that are very new (fresh from svn maybe). I dunno about binutils.
| > | >
| > | > No actually that's a pretty old version from SUSE 10.2
| > | >
| > | > gcc-4.1.3-29
| > | > binutils-2.17.50.0.5-21
| > | >
| > | > This means i've been recently trying to get the x86-64 kernel to work
| > | > with the new gold linker from binutils mainline, but it's far from
| > | > booting yet and was not used here.
| > | >
| > | > > To reproduce I would expect that a very recent gcc/binutils is needed.
| > | > > Andi?
| > | >
| > | > Just a SUSE 10.2 toolchain. You can probably rpm2cpio it from any
| > | > SUSE mirror.
| > |
| > | I have just commit the following that should fix it.
| > |
| > | Sam
| > |
| > | commit aab34ac8582303ef57b792710fc5dd5991477475
| > | Author: Sam Ravnborg <sam@ravnborg.org>
| > | Date: Mon May 19 20:07:58 2008 +0200
| > |
| > | kbuild: filter away debug symbols from kernel symbols
| > |
| > | Andi Kleen <andi@firstfloor.org>
| > | reported that he saw a lot of symbols like this:
| > |
| > | 0000000000000b24 N DW.aio.h.903a6d92.2
| > | 0000000000000bce N DW.task_io_accounting.h.8d8de327.0
| > | 0000000000000bec N DW.hrtimer.h.c23659c6.0
| > |
| > | in his System.map / kallsyms output.
| > |
| > | Simple solution is to skip all debugging
| > | symbols (they are marked 'N').
| > |
| > | Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
| > | Cc: Paulo Marques <pmarques@grupopie.com>
| > |
| > | diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
| > | index 5d20a2e..ad2434b 100644
| > | --- a/scripts/kallsyms.c
| > | +++ b/scripts/kallsyms.c
| > | @@ -108,6 +108,9 @@ static int read_symbol(FILE *in, struct sym_entry *s)
| > | /* exclude also MIPS ELF local symbols ($L123 instead of .L123) */
| > | else if (str[0] == '$')
| > | return -1;
| > | + /* exclude debugging symbols */
| > | + else if (stype == 'N')
| > | + return -1;
| > |
| > | /* include the type field in the symbol name, so that it gets
| > | * compressed together */
| > | diff --git a/scripts/mksysmap b/scripts/mksysmap
| > | index 4390fab..6e133a0 100644
| > | --- a/scripts/mksysmap
| > | +++ b/scripts/mksysmap
| > | @@ -32,6 +32,7 @@
| > | # For System.map filter away:
| > | # a - local absolute symbols
| > | # U - undefined global symbols
| > | +# N - debugging symbols
| > | # w - local weak symbols
| > |
| > | # readprofile starts reading symbols when _stext is found, and
| > | @@ -40,5 +41,5 @@
| > | # so we just ignore them to let readprofile continue to work.
| > | # (At least sparc64 has __crc_ in the middle).
| > |
| > | -$NM -n $1 | grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
| > | +$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
| > |
| > |
| >
| > Hi Sam,
| >
| > should not there be
| >
| > toupper(stype) == 'N'
| >
| > (just a guess)
|
| I conisered this. But decided that we could do so if we needed it later.
| In the nm output I got they were all 'N'.
|
| Sam
|
ok, thanks
- Cyrill -
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2008-05-19 18:22 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-09 17:41 /proc/kallsyms broken in 2.6.26-rc1-git6 Andi Kleen
2008-05-09 18:03 ` Paulo Marques
2008-05-09 19:36 ` Andi Kleen
2008-05-09 19:59 ` Paulo Marques
2008-05-09 23:16 ` Andi Kleen
2008-05-12 9:55 ` Paulo Marques
2008-05-12 10:08 ` Andi Kleen
2008-05-09 23:37 ` Alexey Dobriyan
2008-05-12 10:00 ` Paulo Marques
2008-05-12 15:50 ` Cyrill Gorcunov
2008-05-12 17:23 ` Sam Ravnborg
2008-05-12 17:28 ` Cyrill Gorcunov
2008-05-13 9:54 ` Andi Kleen
2008-05-19 18:11 ` Sam Ravnborg
2008-05-19 18:15 ` Cyrill Gorcunov
2008-05-19 18:21 ` Sam Ravnborg
2008-05-19 18:22 ` Cyrill Gorcunov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox