Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933401AbdC3ICA (ORCPT ); Thu, 30 Mar 2017 04:02:00 -0400 Received: from mx2.suse.de ([195.135.220.15]:54575 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933030AbdC3IB7 (ORCPT ); Thu, 30 Mar 2017 04:01:59 -0400 Date: Thu, 30 Mar 2017 10:01:56 +0200 (CEST) From: Miroslav Benes To: Zhou Chengming 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 v2] livepatch: Reduce the time of finding module symbols In-Reply-To: <1490706635-45752-1-git-send-email-zhouchengming1@huawei.com> Message-ID: References: <1490706635-45752-1-git-send-email-zhouchengming1@huawei.com> User-Agent: Alpine 2.20 (LSU 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1119 Lines: 33 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 > > Then we found the reason: our out-tree module used a lot of static local > variables, so klp.ko has a lot of relocation records which reference the > module. Then for each such entry klp_find_object_symbol() is called to > resolve it, but this function uses the interface kallsyms_on_each_symbol() > even for finding module symbols, so will waste a lot of time on walking > through vmlinux kallsyms table many times. > > This patch changes it to use module_kallsyms_on_each_symbol() for modules > symbols. After we apply this patch, the sys time reduced dramatically. > > ~ time sudo insmod klp.ko > real 0m1.007s > user 0m0.032s > sys 0m0.924s > > Signed-off-by: Zhou Chengming We are the only user of kallsyms_on_each_symbol() interface right now, so it is not that bad to optimize here. Temporarily :) Acked-by: Miroslav Benes Miroslav