Re: [PATCH] perf test: Enable Symbols test to work with a current module dso

From: Adrian Hunter
Date: Fri Feb 16 2024 - 04:47:27 EST


On 31/01/24 22:58, Ian Rogers wrote:
> On Wed, Jan 31, 2024 at 11:24 AM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
>>
>> The test needs a struct machine and creates one for the current host,
>> but a side-effect is that struct machine has set up kernel maps
>> including module maps.
>>
>> If the 'Symbols' test --dso option specifies a current kernel module,
>> it will already be present as a kernel dso, and a map with kmaps needs
>> to be used otherwise there will be a segfault - see below.
>>
>> For that case, find the existing map and use that. In that case also,
>> the dso is split by section into multiple dsos, so test those dsos
>> also. That in turn, shows up that those dsos have not had overlapping
>> symbols removed, so the test fails.
>>
>> Example:
>>
>> Before:
>>
>> $ perf test -F -v Symbols --dso /lib/modules/$(uname -r)/kernel/arch/x86/kvm/kvm-intel.ko
>> 70: Symbols :
>> --- start ---
>> Testing /lib/modules/6.7.2-local/kernel/arch/x86/kvm/kvm-intel.ko
>> Segmentation fault (core dumped)
>>
>> After:
>>
>> $ perf test -F -v Symbols --dso /lib/modules/$(uname -r)/kernel/arch/x86/kvm/kvm-intel.ko
>> 70: Symbols :
>> --- start ---
>> Testing /lib/modules/6.7.2-local/kernel/arch/x86/kvm/kvm-intel.ko
>> Overlapping symbols:
>> 41d30-41fbb l vmx_init
>> 41d30-41fbb g init_module
>> ---- end ----
>> Symbols: FAILED!
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
>
> Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
>

Thanks Ian!

This patch is still OK.