Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp1198292rwi; Wed, 19 Oct 2022 07:48:36 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6kMc9c7Qlyzb6oS3GlPmvpoguqXwVfhbHzB+MjGEhr5VhfgZF/bLWpaawSodaQDSkjVU9S X-Received: by 2002:a17:907:7fa9:b0:791:a5c2:e25 with SMTP id qk41-20020a1709077fa900b00791a5c20e25mr4201496ejc.444.1666190915654; Wed, 19 Oct 2022 07:48:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666190915; cv=none; d=google.com; s=arc-20160816; b=H/LGisR90wnW01sK1iVaD/qmpiW7/CWT+5ELr1IVdWP8H1Zcxd9qjhI6J0imuUOccC UZTr1aftJSjFoNWMtYUcPUirVa61/VADHPP9KwuJQ2lYH4m2TuQuTQaz9LWlA4nvM6QP LTUeLa1t8WMkQHKsiPv9PPAhOTa41m/hFzssK06IyFBDG8VFU3wf83pKRFAFvePHpClN ZqzRTee6p14HhSg0w7VqfdrtW2eSgvIZSFjVu22luX7T0ttMqxRyi4p7IKmnRNAXy1sJ Aje+wAPijC05wxR7V8a4vQvCqGzDUmmCPA2ucJLggdrzhLdBhHGTsPp/yEwPgA1LwMOO FluQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=/GOdRSamOmBaUkFSW4dSua+C/kRHZRy4wBa2BxNSC0o=; b=BIe+Q2FKmu68Fvy6IkSTAGiYOU/2qeCuJMVLL24lkJTDWCFJikyVU4T1BUn30jPNrh Vai0Z3I8rwptmfh4x3JWAA4WsbnVmVoAUQJppJnIVIgzrAFO0XdlXmv2k8J1C2KQtymc gvy8WetIW7R2kDv5ee8KCgnCXoXfBsh6h5/1nIOqu9tzXWzLeM/yU3noX/B60kfRids+ p14qOlbpf4qWLF78ipFV/fb9+WZnyglBrm1IDKK4ZYl7sF3V0ntRlNHiq/3UezmVphxS T3YMFzMxutIyPahvdz//KFcyL4Ei/E9crns6ypX/n48ENVTTE7ONMXd1qJaCXyfKT5sn cc9A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u19-20020a17090617d300b00711da52c6e4si12884991eje.309.2022.10.19.07.48.10; Wed, 19 Oct 2022 07:48:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230232AbiJSO3P (ORCPT + 99 others); Wed, 19 Oct 2022 10:29:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231503AbiJSO2s (ORCPT ); Wed, 19 Oct 2022 10:28:48 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 88165149DEA; Wed, 19 Oct 2022 07:13:15 -0700 (PDT) Received: from dggpemm500023.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4Mssz81K3YzpVgY; Wed, 19 Oct 2022 22:08:52 +0800 (CST) Received: from dggpemm500006.china.huawei.com (7.185.36.236) by dggpemm500023.china.huawei.com (7.185.36.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 19 Oct 2022 22:12:10 +0800 Received: from [10.174.178.55] (10.174.178.55) by dggpemm500006.china.huawei.com (7.185.36.236) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 19 Oct 2022 22:12:09 +0800 Subject: Re: [PATCH v7 00/11] kallsyms: Optimizes the performance of lookup symbols To: Luis Chamberlain CC: Josh Poimboeuf , Jiri Kosina , Miroslav Benes , Petr Mladek , Joe Lawrence , , , Masahiro Yamada , Alexei Starovoitov , Jiri Olsa , Kees Cook , Andrew Morton , , Steven Rostedt , "Ingo Molnar" References: <20221017064950.2038-1-thunder.leizhen@huawei.com> From: "Leizhen (ThunderTown)" Message-ID: Date: Wed, 19 Oct 2022 22:11:58 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.178.55] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpemm500006.china.huawei.com (7.185.36.236) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2022/10/19 20:01, Luis Chamberlain wrote: > On Mon, Oct 17, 2022 at 02:49:39PM +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. > > Stupid question, is a hash table in order? No hash table. All symbols are arranged in ascending order of address. For example: cat /proc/kallsyms The addresses of all symbols are stored in kallsyms_addresses[], and names of all symbols are stored in kallsyms_names[]. The elements in these two arrays are in a one-to-one relationship. For any symbol, it has the same index in both arrays. Therefore, when we look up a symbolic name based on an address, we use a binary lookup. However, when we look up an address based on a symbol name, we can only traverse array kallsyms_names[] in sequence. I think the reason why hash is not used is to save memory. > > Luis > . > -- Regards, Zhen Lei