From: Kim Phillips <kim.phillips@arm.com>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Jiri Olsa <jolsa@redhat.com>, Jiri Olsa <jolsa@kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>, David Ahern <dsahern@gmail.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>, <kernel-team@lge.com>
Subject: Re: [PATCH] Revert "perf machine: Fix paranoid check in machine__set_kernel_mmap()"
Date: Thu, 12 Apr 2018 19:09:54 -0500 [thread overview]
Message-ID: <20180412190954.4c76039100b990675ec390bd@arm.com> (raw)
In-Reply-To: <20180412015756.GA6962@sejong>
On Thu, 12 Apr 2018 10:57:56 +0900
Namhyung Kim <namhyung@kernel.org> wrote:
> On Wed, Apr 11, 2018 at 07:29:40PM -0500, Kim Phillips wrote:
> > On Thu, 12 Apr 2018 08:31:09 +0900
> > Namhyung Kim <namhyung@kernel.org> wrote:
> > > On Wed, Apr 11, 2018 at 06:07:52PM -0500, Kim Phillips wrote:
> > > > ---
> > > > It's not clear to me what the specific intent of the original commit
> > > > was, thus the revert.
> > >
> > > Hmm.. maybe your kernel map has non-zero start and zero end. I
> >
> > On x86, the first line in /proc/kallsyms is:
> >
> > 0000000000000000 A irq_stack_union
> >
> > On arm64, it's:
> >
> > ffff200008080000 t _head
> >
> > Another arm64 box has:
> >
> > ffff000008080000 t _head
> >
> > (neither have RANDOMIZE_BASE set FWIW)
> >
> > > thought it was just from an old or invalid data. But now I think that
> >
> > It would be good to know what that was, yes.
> >
> > > overflow can create it.. could you please show me the mmap event?
> > >
> > > $ perf script --show-mmap-events
> >
> > Here you go:
> >
> > swapper 0 [000] 0.000000: PERF_RECORD_MMAP -1/0: [0xffff200008080000(0xdffff7f7ffff) @ 0xffff200008080000]: x [kernel.kallsyms]_text
>
> 0xffff200008080000
> + 0xdffff7f7ffff
> --------------------
> 0xffffffffffffffff
>
> So it should have ~0ULL of the 'end' already. I don't know why it
> caused the problem.. Was it from the `perf.good`?
There's no difference between the output of perf.good and perf.bad (the
difference between them is this reversion patch, .good being the one
that includes it).
> > swapper 0 [000] 0.000000: PERF_RECORD_MMAP -1/0: [0xffff2000021e0000(0x18000) @ 0]: x /lib/modules/4.16.0+/kernel/drivers/bus/arm-ccn.ko
>
> Hmm.. also it seems arm64 loads modules under the kernel. Then the
> fixup logic in machine__create_kernel_maps() won't work. Also as we
you mean this:
void __map_groups__fixup_end(struct map_groups *mg, enum map_type type)
...
if (!curr->end)
curr->end = next->start;
? Module symbol resolution is working, however. Maybe because this
'paranoid' check was setting all the end addresses to ~0ULL? Does the
design assume what maps__first() returns always has the lowest address,
and they're in sorted order? If so, what's the fix, to re-sort
map_groups afterwards?
> don't use the map_groups__fixup_end() anymore
? I see map_groups__fixup_end() still being called.
> I think it's ok just
> checking the end address.
Where? In machine__set_kernel_mmap(), like this reversion does?
The original commit says:
The machine__set_kernel_mmap() is to setup addresses of the kernel map
using external info. But it has a check when the address is given from
an incorrect input which should have the start and end address of 0
(i.e. machine__process_kernel_mmap_event).
But we also use the end address of 0 for a valid input so change it to
check both start and end addresses.
yet the comment above the code says:
* Be a bit paranoid here, some perf.data file came with
* a zero sized synthesized MMAP event for the kernel.
I tracked the first comment insertion down to this commit:
commit 10fe12ef631a7e85022ed26304a37f033a6a95b8
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Sat Feb 20 19:53:13 2010 -0200
perf symbols: Fix up map end too on modular kernels with no modules installed
In 2161db9 we stopped failing when not finding modules when
asked too, but then the kernel maps (just one, for vmlinux)
wasn't having its ->end field correctly set up, so symbols were
not being found for the vmlinux map because its range was 0-0.
which, when reading that last part, one would assume start == end == 0,
therefore size also == 0, the comment only talks about a zero *sized*
event...so did the original commit 1d12cec6ce99 "perf machine: Fix
paranoid check in machine__set_kernel_mmap()" really fix that case?
Because it checks start == 0, not necessarily the size...
If not, can it be reverted until we figure out what's going on with
arm64? It's causing a regression in the meantime...
Thanks,
Kim
next prev parent reply other threads:[~2018-04-13 0:09 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-15 12:26 [PATCHv3 0/9] perf tool: Assorted fixes Jiri Olsa
2018-02-15 12:26 ` [PATCH 1/9] tools lib symbol: Skip non-address kallsyms line Jiri Olsa
2018-02-17 11:24 ` [tip:perf/core] " tip-bot for Jiri Olsa
2018-02-15 12:26 ` [PATCH 2/9] perf tools: Check if we read regular file in dso__load Jiri Olsa
2018-02-17 11:24 ` [tip:perf/core] perf symbols: Check if we read regular file in dso__load() tip-bot for Jiri Olsa
2018-02-15 12:26 ` [PATCH 3/9] perf tools: Free root_dir in machine__init error path Jiri Olsa
2018-02-17 11:25 ` [tip:perf/core] perf machine: Free root_dir in machine__init() " tip-bot for Jiri Olsa
2018-02-15 12:26 ` [PATCH 4/9] perf tools: Move kernel mmap name into struct machine Jiri Olsa
2018-02-17 11:25 ` [tip:perf/core] perf machine: " tip-bot for Jiri Olsa
2018-02-15 12:26 ` [PATCH 5/9] perf tools: Generalize machine__set_kernel_mmap function Jiri Olsa
2018-02-17 11:26 ` [tip:perf/core] perf machine: Generalize machine__set_kernel_mmap() tip-bot for Jiri Olsa
2018-02-15 12:26 ` [PATCH 6/9] perf tools: Don't search for active kernel start in __machine__create_kernel_maps Jiri Olsa
2018-02-17 11:26 ` [tip:perf/core] perf machine: " tip-bot for Jiri Olsa
2018-02-19 2:20 ` [PATCH 6/9] perf tools: " Namhyung Kim
2018-02-19 10:01 ` Jiri Olsa
2018-02-19 10:19 ` Namhyung Kim
2018-02-19 10:49 ` Jiri Olsa
2018-02-19 12:18 ` Arnaldo Carvalho de Melo
2018-04-11 23:07 ` [PATCH] Revert "perf machine: Fix paranoid check in machine__set_kernel_mmap()" Kim Phillips
2018-04-11 23:31 ` Namhyung Kim
2018-04-12 0:29 ` Kim Phillips
2018-04-12 1:57 ` Namhyung Kim
2018-04-13 0:09 ` Kim Phillips [this message]
2018-04-13 7:36 ` Namhyung Kim
2018-02-21 10:25 ` [tip:perf/core] perf machine: Fix paranoid check in machine__set_kernel_mmap() tip-bot for Namhyung Kim
2018-02-19 12:21 ` [PATCH 6/9] perf tools: Don't search for active kernel start in __machine__create_kernel_maps Arnaldo Carvalho de Melo
2018-02-19 14:05 ` Namhyung Kim
2018-02-15 12:26 ` [PATCH 7/9] perf tools: Remove machine__load_kallsyms function Jiri Olsa
2018-02-17 11:27 ` [tip:perf/core] perf machine: Remove machine__load_kallsyms() tip-bot for Jiri Olsa
2018-02-15 12:26 ` [PATCH 8/9] perf tools: Do not create kernel maps in sample__resolve Jiri Olsa
2018-02-17 11:27 ` [tip:perf/core] perf tools: Do not create kernel maps in sample__resolve() tip-bot for Jiri Olsa
2018-02-15 12:26 ` [PATCH 9/9] perf tests: Use arch__compare_symbol_names to compare symbols Jiri Olsa
2018-02-15 14:27 ` Arnaldo Carvalho de Melo
2018-02-15 14:48 ` Naveen N. Rao
2018-02-15 15:10 ` Arnaldo Carvalho de Melo
2018-02-17 11:28 ` [tip:perf/core] " tip-bot for Jiri Olsa
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=20180412190954.4c76039100b990675ec390bd@arm.com \
--to=kim.phillips@arm.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=jolsa@redhat.com \
--cc=kernel-team@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®