Re: [PATCH 0/7] kallsyms: Optimizes the performance of lookup symbols

From: Leizhen (ThunderTown)
Date: Thu Sep 08 2022 - 21:17:49 EST




On 2022/9/9 8:07, Luis Chamberlain wrote:
> On Thu, Sep 08, 2022 at 09:09:29PM +0800, Zhen Lei wrote:
>> Currently, to search for a symbol, we need to expand the symbols in
>> 'kallsyms_names' one by one, and then use the expanded string for
>> comparison. This is very slow.
>>
>> In fact, we can first compress the name being looked up and then use
>> it for comparison when traversing 'kallsyms_names'.
>>
>> This patch series optimizes the performance of function kallsyms_lookup_name(),
>> and function klp_find_object_symbol() in the livepatch module. Based on the
>> test results, the performance overhead is reduced to 5%. That is, the
>> performance of these functions is improved by 20 times.
>>
>> To avoid increasing the kernel size in non-debug mode, the optimization is only
>> for the case CONFIG_KALLSYMS_ALL=y.
>
> WIthout having time yet to reveiw the implementation details, it would
> seem this is an area we may want to test for future improvements easily,
> so a selftest better yet a kunit test may be nice for this. Can you
> write one so we can easily gather a simple metric for "how long does
> this take"?

Good advice. I'll write it today.

>
> Luis
> .
>

--
Regards,
Zhen Lei