Re: [PATCH RFC 07/19] perf tools: Workaround missing maps for x86_64 KPTI entry trampolines

From: Adrian Hunter
Date: Tue May 15 2018 - 06:41:29 EST


On 15/05/18 13:30, Jiri Olsa wrote:
> On Wed, May 09, 2018 at 02:43:36PM +0300, Adrian Hunter wrote:
>
> SNIP
>
>> +
>> + for (i = 0; i < ARRAY_SIZE(syms); i++) {
>> + if (syms[i].addr)
>> + return syms[i].addr;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> +/*
>> + * These values can be used for kernels that do not have symbols for the entry
>> + * trampolines in kallsyms.
>> + */
>> +#define X86_64_CPU_ENTRY_AREA_PER_CPU 0xfffffe0000000000ULL
>> +#define X86_64_CPU_ENTRY_AREA_SIZE 0x2c000
>> +#define X86_64_ENTRY_TRAMPOLINE 0x6000
>> +
>> +/* Map x86_64 KPTI entry trampolines */
>> +int machine__map_x86_64_entry_trampolines(struct machine *machine,
>> + struct dso *kernel)
>> +{
>
> would it make sense to put all this under arch/x86/util/machine.c ?

In this case, machine__map_x86_64_entry_trampolines() is specific to the
arch in the perf.data file, not the arch perf is currently running on.