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
next prev 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.