All of lore.kernel.org
 help / color / mirror / Atom feed
From: zhouchengming <zhouchengming1@huawei.com>
To: Miroslav Benes <mbenes@suse.cz>
Cc: <live-patching@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<jpoimboe@redhat.com>, <jeyu@redhat.com>, <jikos@kernel.org>,
	<pmladek@suse.com>, <huawei.libin@huawei.com>
Subject: Re: [PATCH] reduce the time of finding symbols for module
Date: Tue, 28 Mar 2017 18:58:54 +0800	[thread overview]
Message-ID: <58DA41EE.90607@huawei.com> (raw)
In-Reply-To: <alpine.LSU.2.20.1703281055550.30237@pobox.suse.cz>

On 2017/3/28 17:00, Miroslav Benes wrote:
>
> Hi,
>
> On Tue, 28 Mar 2017, Zhou Chengming wrote:
>
>> It's reported that the time of insmoding a klp.ko for one of our
>> out-tree modules is too long.
>>
>> ~ time sudo insmod klp.ko
>> real	0m23.799s
>> user	0m0.036s
>> sys	0m21.256s
>
> Is this stable through several (>=10) runs? 23 seconds are really
> suspicious. Yes, there is a linear search through all the kallsyms in
> kallsyms_on_each_symbol(), but there are something like 70k symbols on my
> machine (that is, way less than 1M). 23 seconds are somewhat unexpected.
>

Yes, it's stable through several runs.

I think the big reason is that our out-tree module used a lot of static local
variables. We can see '.rela.kpatch.dynrelas' contains many entries, so it will
waste a lot of time if we use kallsyms_on_each_symbol() to find these symbols of module.

Relocation section '.rela.kpatch.funcs' at offset 0x382e0 contains 3 entries:
   Offset          Info           Type           Sym. Value    Sym. Name + Addend
000000000000  003300000101 R_AARCH64_ABS64   0000000000000000 value_show + 0
000000000020  000b00000101 R_AARCH64_ABS64   0000000000000000 .kpatch.strings + 8
000000000028  000b00000101 R_AARCH64_ABS64   0000000000000000 .kpatch.strings + 0

Relocation section '.rela.kpatch.dynrelas' at offset 0x38328 contains 2562 entries:
   Offset          Info           Type           Sym. Value    Sym. Name + Addend
000000000000  003300000101 R_AARCH64_ABS64   0000000000000000 value_show + 14
000000000018  000b00000101 R_AARCH64_ABS64   0000000000000000 .kpatch.strings + 13
000000000020  000b00000101 R_AARCH64_ABS64   0000000000000000 .kpatch.strings + 0
000000000040  003300000101 R_AARCH64_ABS64   0000000000000000 value_show + 20
000000000058  000b00000101 R_AARCH64_ABS64   0000000000000000 .kpatch.strings + 13
000000000060  000b00000101 R_AARCH64_ABS64   0000000000000000 .kpatch.strings + 0

> If it is a problem, can we fix kallsyms_on_each_symbol() and replace the
> linear search with something better? All users would benefit...
>

Yes, it's better if we can improve the linear search, but I can't think of that...

Thanks.

> Thanks,
> Miroslav
>
> .
>

  reply	other threads:[~2017-03-28 11:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-28  2:02 [PATCH] reduce the time of finding symbols for module Zhou Chengming
2017-03-28  9:00 ` Miroslav Benes
2017-03-28 10:58   ` zhouchengming [this message]
2017-03-28 11:16     ` Miroslav Benes
2017-03-28 12:50       ` zhouchengming
2017-03-29  0:03       ` Jessica Yu
2017-03-29  1:50         ` Li Bin
2017-03-29 19:09           ` Jessica Yu
2017-10-13 12:54           ` Ruslan Bilovol
2017-10-13 13:18             ` Torsten Duwe
2017-10-17 12:44               ` Ruslan Bilovol
2017-10-17 13:06                 ` Torsten Duwe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=58DA41EE.90607@huawei.com \
    --to=zhouchengming1@huawei.com \
    --cc=huawei.libin@huawei.com \
    --cc=jeyu@redhat.com \
    --cc=jikos@kernel.org \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=live-patching@vger.kernel.org \
    --cc=mbenes@suse.cz \
    --cc=pmladek@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.