* [REGRESSION] _end symbol missing from Symbol.map @ 2009-08-13 6:45 Hannes Reinecke 2009-08-19 16:37 ` Andrew Morton 0 siblings, 1 reply; 5+ messages in thread From: Hannes Reinecke @ 2009-08-13 6:45 UTC (permalink / raw) To: Sam Ravnborg; +Cc: Linux Kernel Hi all, with 2.6.31 'crash' on x86_64 falls flat on its face as the '_end' symbol is missing from the System.map file. The culprit is commit 091e52c3551d3031343df24b573b770b4c6c72b6, which moved the '_end' symbol into it's own section. Apparently this causes kallsyms to not reference it properly. So either we'd need to revert part of the patch to not include _end in it's own section: diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index 59f31d2..1422df5 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -376,9 +376,7 @@ SECTIONS __brk_limit = .; } - .end : AT(ADDR(.end) - LOAD_OFFSET) { - _end = .; - } + _end = .; /* Sections to be discarded */ /DISCARD/ : { or someone has to fixup kallsyms. But this is far beyond my comfort zone. Cheers, Hannes --- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Markus Rex, HRB 16746 (AG Nürnberg) ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [REGRESSION] _end symbol missing from Symbol.map 2009-08-13 6:45 [REGRESSION] _end symbol missing from Symbol.map Hannes Reinecke @ 2009-08-19 16:37 ` Andrew Morton 2009-08-20 5:59 ` Hannes Reinecke 0 siblings, 1 reply; 5+ messages in thread From: Andrew Morton @ 2009-08-19 16:37 UTC (permalink / raw) To: Hannes Reinecke; +Cc: Sam Ravnborg, Linux Kernel, Ingo Molnar, stable On Thu, 13 Aug 2009 08:45:20 +0200 Hannes Reinecke <hare@suse.de> wrote: > Hi all, > > with 2.6.31 'crash' on x86_64 falls flat on its face as the '_end' symbol > is missing from the System.map file. > > The culprit is commit 091e52c3551d3031343df24b573b770b4c6c72b6, > which moved the '_end' symbol into it's own section. > Apparently this causes kallsyms to not reference it properly. > > So either we'd need to revert part of the patch to not > include _end in it's own section: > > diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S > index 59f31d2..1422df5 100644 > --- a/arch/x86/kernel/vmlinux.lds.S > +++ b/arch/x86/kernel/vmlinux.lds.S > @@ -376,9 +376,7 @@ SECTIONS > __brk_limit = .; > } > > - .end : AT(ADDR(.end) - LOAD_OFFSET) { > - _end = .; > - } > + _end = .; > > /* Sections to be discarded */ > /DISCARD/ : { > > or someone has to fixup kallsyms. But this is far beyond my comfort zone. > So System.map is part of the kernel API too? Sigh. Your email client replaces tabs with spaces. The patch didn't have a signed-off-by: I queued it up, and tagged it for -stable backporting. Unless we come up with something better. We might not get this into 2.6.31, in which case this fix or its replacement will need backporting to 2.6.30.x and 2.6.31.x (IMO). ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [REGRESSION] _end symbol missing from Symbol.map 2009-08-19 16:37 ` Andrew Morton @ 2009-08-20 5:59 ` Hannes Reinecke 2009-08-20 10:59 ` Takashi Iwai 0 siblings, 1 reply; 5+ messages in thread From: Hannes Reinecke @ 2009-08-20 5:59 UTC (permalink / raw) To: Andrew Morton; +Cc: Sam Ravnborg, Linux Kernel, Ingo Molnar, stable Andrew Morton wrote: > On Thu, 13 Aug 2009 08:45:20 +0200 Hannes Reinecke <hare@suse.de> wrote: > >> Hi all, >> >> with 2.6.31 'crash' on x86_64 falls flat on its face as the '_end' symbol >> is missing from the System.map file. >> >> The culprit is commit 091e52c3551d3031343df24b573b770b4c6c72b6, >> which moved the '_end' symbol into it's own section. >> Apparently this causes kallsyms to not reference it properly. >> >> So either we'd need to revert part of the patch to not >> include _end in it's own section: >> >> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S >> index 59f31d2..1422df5 100644 >> --- a/arch/x86/kernel/vmlinux.lds.S >> +++ b/arch/x86/kernel/vmlinux.lds.S >> @@ -376,9 +376,7 @@ SECTIONS >> __brk_limit = .; >> } >> >> - .end : AT(ADDR(.end) - LOAD_OFFSET) { >> - _end = .; >> - } >> + _end = .; >> >> /* Sections to be discarded */ >> /DISCARD/ : { >> >> or someone has to fixup kallsyms. But this is far beyond my comfort zone. >> > > So System.map is part of the kernel API too? Sigh. > > Your email client replaces tabs with spaces. > I know. > The patch didn't have a signed-off-by: > I know, too. However, this is clearly a band-aid, and as such I reported it more as an RFC. One (Sam?) should really fix up kallsyms to extract the _end symbol. Hence I didn't warrant it with a Signed-off line. > I queued it up, and tagged it for -stable backporting. Unless we come > up with something better. > I was sort of hoping Sam would speak up and present some better approach ... > We might not get this into 2.6.31, in which case this fix or its > replacement will need backporting to 2.6.30.x and 2.6.31.x (IMO). > Thanks for the feedback. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Markus Rex, HRB 16746 (AG Nürnberg) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [REGRESSION] _end symbol missing from Symbol.map 2009-08-20 5:59 ` Hannes Reinecke @ 2009-08-20 10:59 ` Takashi Iwai 2009-08-20 19:15 ` H. Peter Anvin 0 siblings, 1 reply; 5+ messages in thread From: Takashi Iwai @ 2009-08-20 10:59 UTC (permalink / raw) To: Hannes Reinecke Cc: Andrew Morton, Sam Ravnborg, Linux Kernel, Ingo Molnar, H. Peter Anvin, Jeremy Fitzhardinge, stable At Thu, 20 Aug 2009 07:59:26 +0200, Hannes Reinecke wrote: > > Andrew Morton wrote: > > On Thu, 13 Aug 2009 08:45:20 +0200 Hannes Reinecke <hare@suse.de> wrote: > > > >> Hi all, > >> > >> with 2.6.31 'crash' on x86_64 falls flat on its face as the '_end' symbol > >> is missing from the System.map file. > >> > >> The culprit is commit 091e52c3551d3031343df24b573b770b4c6c72b6, > >> which moved the '_end' symbol into it's own section. > >> Apparently this causes kallsyms to not reference it properly. > >> > >> So either we'd need to revert part of the patch to not > >> include _end in it's own section: > >> > >> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S > >> index 59f31d2..1422df5 100644 > >> --- a/arch/x86/kernel/vmlinux.lds.S > >> +++ b/arch/x86/kernel/vmlinux.lds.S > >> @@ -376,9 +376,7 @@ SECTIONS > >> __brk_limit = .; > >> } > >> > >> - .end : AT(ADDR(.end) - LOAD_OFFSET) { > >> - _end = .; > >> - } > >> + _end = .; > >> > >> /* Sections to be discarded */ > >> /DISCARD/ : { > >> > >> or someone has to fixup kallsyms. But this is far beyond my comfort zone. > >> > > > > So System.map is part of the kernel API too? Sigh. > > > > Your email client replaces tabs with spaces. > > > I know. > > > The patch didn't have a signed-off-by: > > > I know, too. > However, this is clearly a band-aid, and as such I reported > it more as an RFC. > One (Sam?) should really fix up kallsyms to extract the _end symbol. > Hence I didn't warrant it with a Signed-off line. > > > I queued it up, and tagged it for -stable backporting. Unless we come > > up with something better. > > > I was sort of hoping Sam would speak up and present some better approach ... > > > We might not get this into 2.6.31, in which case this fix or its > > replacement will need backporting to 2.6.30.x and 2.6.31.x (IMO). Yep, x86-32 had already the own end section in 2.6.30 kernel, which was introduced by the following commit: commit 0a699af8e613a670be50245366fa18cb19ac5172 Author: H. Peter Anvin <hpa@linux.intel.com> Date: Tue Mar 17 14:14:31 2009 -0700 x86-32: move _end to a dummy section Impact: build fix with CONFIG_RELOCATABLE Move _end into a dummy section, so that relocs.c will know it is a relocatable symbol. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com> Cc: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Jeremy Fitzhardinge <jeremy@goop.org> So, judging from the commit log, simply reverting it seems to have some drawback...? thanks, Takashi ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [REGRESSION] _end symbol missing from Symbol.map 2009-08-20 10:59 ` Takashi Iwai @ 2009-08-20 19:15 ` H. Peter Anvin 0 siblings, 0 replies; 5+ messages in thread From: H. Peter Anvin @ 2009-08-20 19:15 UTC (permalink / raw) To: Takashi Iwai Cc: Hannes Reinecke, Andrew Morton, Sam Ravnborg, Linux Kernel, Ingo Molnar, Jeremy Fitzhardinge, stable On 08/20/2009 03:59 AM, Takashi Iwai wrote: > > So, judging from the commit log, simply reverting it seems to have > some drawback...? > Yes. I'm starting to think we should have a list of "known relative symbols" in relocs.c just as we have a list of "known absolute symbols" already. -hpa ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-08-20 19:15 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-08-13 6:45 [REGRESSION] _end symbol missing from Symbol.map Hannes Reinecke 2009-08-19 16:37 ` Andrew Morton 2009-08-20 5:59 ` Hannes Reinecke 2009-08-20 10:59 ` Takashi Iwai 2009-08-20 19:15 ` H. Peter Anvin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).