Messages in this thread | | | Subject | Re: [PATCH RFC 07/19] perf tools: Workaround missing maps for x86_64 KPTI entry trampolines | From | Adrian Hunter <> | Date | Fri, 11 May 2018 14:15:53 +0300 |
| |
On 10/05/18 23:15, Arnaldo Carvalho de Melo wrote: > Em Thu, May 10, 2018 at 07:08:37PM +0000, Hunter, Adrian escreveu: >>> -----Original Message----- >>> From: Arnaldo Carvalho de Melo [mailto:acme@kernel.org] >>> Sent: Wednesday, May 9, 2018 8:07 PM >>> To: Hunter, Adrian <adrian.hunter@intel.com> >>> Cc: Thomas Gleixner <tglx@linutronix.de>; Ingo Molnar >>> <mingo@redhat.com>; Peter Zijlstra <peterz@infradead.org>; Andy >>> Lutomirski <luto@kernel.org>; H. Peter Anvin <hpa@zytor.com>; Andi Kleen >>> <ak@linux.intel.com>; Alexander Shishkin >>> <alexander.shishkin@linux.intel.com>; Dave Hansen >>> <dave.hansen@linux.intel.com>; Joerg Roedel <joro@8bytes.org>; Jiri Olsa >>> <jolsa@redhat.com>; linux-kernel@vger.kernel.org; x86@kernel.org >>> Subject: Re: [PATCH RFC 07/19] perf tools: Workaround missing maps for >>> x86_64 KPTI entry trampolines >>> >>> Em Wed, May 09, 2018 at 02:43:36PM +0300, Adrian Hunter escreveu: >>>> On x86_64 the KPTI entry trampolines are not in the kernel map created >>>> by perf tools. That results in the addresses having no symbols and >>>> prevents annotation. It also causes Intel PT to have decoding errors >>>> at the trampoline addresses. Workaround that by creating maps for the >>> trampolines. >>>> At present the kernel does not export information revealing where the >>>> trampolines are. Until that happens, the addresses are hardcoded. >>>> >>>> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> >>>> --- >>>> tools/perf/util/machine.c | 104 >>> ++++++++++++++++++++++++++++++++++++++++++++++ >>>> tools/perf/util/machine.h | 3 ++ >>>> tools/perf/util/symbol.c | 12 +++--- >>>> 3 files changed, 114 insertions(+), 5 deletions(-) >>>> >>>> diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c >>>> index 22047ff3cf2a..1bf15aa0b099 100644 >>>> --- a/tools/perf/util/machine.c >>>> +++ b/tools/perf/util/machine.c >>>> @@ -851,6 +851,110 @@ static int >>> machine__get_running_kernel_start(struct machine *machine, >>>> return 0; >>>> } >>>> >>>> +struct special_kernal_map { >>> >>> s/kernal/kernel/ >>> >>> And "special"? >> >> I have added comment: >> >> /* Kernel-space maps that are not the main kernel map nor a module map */ > > Perhaps: > > /* Kernel-space maps for symbols that are outside the main kernel map and module maps */ > > struct extra_kernel_map; > > What do you think?
I have done the re-naming and comment change and pushed the changes to the same branch.
| |