All of lore.kernel.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] scripts/kallsyms: filter symbols not in kernel address space
Date: Tue, 7 Jan 2014 15:12:33 +0100	[thread overview]
Message-ID: <201401071512.34016.arnd@arndb.de> (raw)
In-Reply-To: <1382975339-25831-1-git-send-email-tom.leiming@gmail.com>

On Monday 28 October 2013, Ming Lei wrote:
> This patch uses CONFIG_PAGE_OFFSET to filter symbols which
> are not in kernel address space because these symbols are
> generally for generating code purpose and can't be run at
> kernel mode, so we needn't keep them in /proc/kallsyms.
> 
> For example, on ARM there are some symbols which are
> linked in relocatable code section, then perf can't parse
> symbols any more from /proc/kallsyms, and this patch fixes
> the problem.
> 
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: Michal Marek <mmarek@suse.cz>
> Acked-by: Rusty Russell <rusty@rustcorp.com.au>
> Signed-off-by: Ming Lei <tom.leiming@gmail.com>

Sorry for the late report, but I seem to have encountered a problem with this
patch, now that it has made it into all stable kernels.

When linking an ARM nommu kernel, I get the output "No valid symbol." twice,
from scripts/kallsyms. The problem evidently is that PAGE_OFFSET is still
set to 0xC0000000 on ARM NOMMU builds but the kernel is linked to start at
PLAT_PHYS_OFFSET instead, which may be elsehwere. For most platforms,
this is defined in Kconfig these days, so we could get away with

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d1e4098..c477a7c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1592,6 +1592,7 @@ endchoice
 
 config PAGE_OFFSET
 	hex
+	default PHYS_OFFSET if !MMU
 	default 0x40000000 if VMSPLIT_1G
 	default 0x80000000 if VMSPLIT_2G
 	default 0xC0000000

but there are still a few ARM platforms that define their own PLAT_PHYS_OFFSET
in memory.h, and it wouldn't help on non-ARM systems that might have the same
problem.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Ming Lei <tom.leiming@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, Michal Marek <mmarek@suse.cz>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Russell King <linux@arm.linux.org.uk>
Subject: Re: [PATCH] scripts/kallsyms: filter symbols not in kernel address space
Date: Tue, 7 Jan 2014 15:12:33 +0100	[thread overview]
Message-ID: <201401071512.34016.arnd@arndb.de> (raw)
In-Reply-To: <1382975339-25831-1-git-send-email-tom.leiming@gmail.com>

On Monday 28 October 2013, Ming Lei wrote:
> This patch uses CONFIG_PAGE_OFFSET to filter symbols which
> are not in kernel address space because these symbols are
> generally for generating code purpose and can't be run at
> kernel mode, so we needn't keep them in /proc/kallsyms.
> 
> For example, on ARM there are some symbols which are
> linked in relocatable code section, then perf can't parse
> symbols any more from /proc/kallsyms, and this patch fixes
> the problem.
> 
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: Michal Marek <mmarek@suse.cz>
> Acked-by: Rusty Russell <rusty@rustcorp.com.au>
> Signed-off-by: Ming Lei <tom.leiming@gmail.com>

Sorry for the late report, but I seem to have encountered a problem with this
patch, now that it has made it into all stable kernels.

When linking an ARM nommu kernel, I get the output "No valid symbol." twice,
from scripts/kallsyms. The problem evidently is that PAGE_OFFSET is still
set to 0xC0000000 on ARM NOMMU builds but the kernel is linked to start at
PLAT_PHYS_OFFSET instead, which may be elsehwere. For most platforms,
this is defined in Kconfig these days, so we could get away with

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d1e4098..c477a7c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1592,6 +1592,7 @@ endchoice
 
 config PAGE_OFFSET
 	hex
+	default PHYS_OFFSET if !MMU
 	default 0x40000000 if VMSPLIT_1G
 	default 0x80000000 if VMSPLIT_2G
 	default 0xC0000000

but there are still a few ARM platforms that define their own PLAT_PHYS_OFFSET
in memory.h, and it wouldn't help on non-ARM systems that might have the same
problem.

	Arnd

  parent reply	other threads:[~2014-01-07 14:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-28 15:48 [PATCH] scripts/kallsyms: filter symbols not in kernel address space Ming Lei
2013-10-28 15:48 ` Ming Lei
2013-10-31 22:43 ` Andrew Morton
2013-10-31 22:43   ` Andrew Morton
2013-10-31 22:50   ` Russell King - ARM Linux
2013-10-31 22:50     ` Russell King - ARM Linux
2013-10-31 22:58     ` Andrew Morton
2013-10-31 22:58       ` Andrew Morton
2013-10-31 23:53       ` Russell King - ARM Linux
2013-10-31 23:53         ` Russell King - ARM Linux
2013-11-01  2:10   ` Ming Lei
2013-11-01  2:10     ` Ming Lei
2013-11-01  2:36     ` Rusty Russell
2013-11-01  2:36       ` Rusty Russell
2013-11-01  2:36       ` Rusty Russell
2013-11-01  4:38       ` Stephen Rothwell
2013-11-01  4:38         ` Stephen Rothwell
2013-11-01  4:38         ` Stephen Rothwell
2014-01-07 14:12 ` Arnd Bergmann [this message]
2014-01-07 14:12   ` Arnd Bergmann
2014-01-07 14:33   ` Ming Lei
2014-01-07 14:33     ` Ming Lei
2014-01-07 15:05     ` Arnd Bergmann
2014-01-07 15:05       ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201401071512.34016.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.