linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).