lkml.org 
[lkml]   [2018]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH RFC 07/19] perf tools: Workaround missing maps for x86_64 KPTI entry trampolines
From
Date
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.

\
 
 \ /
  Last update: 2018-05-11 13:17    [W:0.061 / U:1.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site