Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1650187imm; Sun, 9 Sep 2018 06:32:14 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZKRqz2O/qPWKdTb1jI4lMQEbMmxw4K7Ge6h7prJTlQ2ULEXyIjbNky4iNRJ78F5DpwPv7F X-Received: by 2002:a17:902:2:: with SMTP id 2-v6mr17331784pla.181.1536499934730; Sun, 09 Sep 2018 06:32:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536499934; cv=none; d=google.com; s=arc-20160816; b=pK8gXnB4HsKwojAA8oincdH+ZLSRoEjsSKo/Gi8LkQGK8W3uxqiLEp4h5EffZzFPV+ 0C2BuS5ksYgJmbDyaY6D1igiutHkfLzHxKubB9Gdy4uO9jHZJK0Q9R1vUAmIR1soF8ZV 4v991l9FMHV99GDG60o8p8lIs7b+FLbTqhOX5I8ovwAce33pSVRSZxpKnr5zLPQjV3N4 ZFcaOyaX/outM3YXsGDUapIXErJwTk8uN+0HMj/amiF3nhsvg6akqDJJJ8DmLWHjndf0 VWLTL8BoGhqFtMkOvCM+sdxsgA31X/F24ML50K6JkKIL6e3DuiNbiaoexdi0m5XNx0Ki LslQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=RGgnpuYQjJpjqPBY8lWvTUiTCoGVisbdsAJqt+Sf3Qw=; b=eAsUWjEJT1FVQK/4JcPklB+H6TkriersEbwkL1ZZpS6Y5okdyK6k4tA8nSIZea4Tu+ ermZfOJEx6erQhq48FB49lmvJpHP/+/g/SzePXF5AyKHc3dfj8Y5cUjkRnCov46azbt5 iR2+F9V2FgSMkXGHiZ1tGL/7mhbgNZv1ARAmFcShp0X7qLN6X0SRq5JIP+dQnNpcLmDV y/LqNQR0SVfoZVS1SoHGedAKvn62zuoPCffwf7KmR7IuUXvzzQAqQ3QQF1HGEeS+fbXG 5NIPFoj+uP7OH4SA0sj1tXKplGwkx8/fRD9OiXarCjO81miqUib2vdkOBKlETNYLp8w6 lH7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@meituan.com header.s=20130113 header.b=ddAk+4gq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=meituan.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j8-v6si7054360plk.196.2018.09.09.06.31.43; Sun, 09 Sep 2018 06:32:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@meituan.com header.s=20130113 header.b=ddAk+4gq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=meituan.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727059AbeIISTR (ORCPT + 99 others); Sun, 9 Sep 2018 14:19:17 -0400 Received: from mx-fe5-210.meituan.com ([103.37.138.210]:44087 "EHLO mx02.meituan.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726929AbeIISTR (ORCPT ); Sun, 9 Sep 2018 14:19:17 -0400 X-Greylist: delayed 470 seconds by postgrey-1.27 at vger.kernel.org; Sun, 09 Sep 2018 14:19:14 EDT Received: from localhost (localhost [127.0.0.1]) by dx-it-mx02.dx.sankuai.com (Postfix) with ESMTP id 2D5AA297C475; Sun, 9 Sep 2018 21:21:31 +0800 (CST) Received: from mx02.meituan.com ([127.0.0.1]) by localhost (dx-it-mx02.dx.sankuai.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id UoZvdoxtktc3; Sun, 9 Sep 2018 21:21:29 +0800 (CST) Received: from localhost (localhost [127.0.0.1]) by dx-it-mx02.dx.sankuai.com (Postfix) with ESMTP id F3FB7297C46A; Sun, 9 Sep 2018 21:21:28 +0800 (CST) DKIM-Filter: OpenDKIM Filter v2.9.2 dx-it-mx02.dx.sankuai.com F3FB7297C46A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meituan.com; s=20130113; t=1536499289; bh=RGgnpuYQjJpjqPBY8lWvTUiTCoGVisbdsAJqt+Sf3Qw=; h=From:To:Subject:Date:Message-Id; b=ddAk+4gqbeb4rflM6d5y+FcZVVQtm3wRIDUy5AjrQlsf7q/DCxRrXhn2d7WFIowUC TwjVTZNtLr6yJFqTPfopZ2mhUA7DMWvQk4pWwF4YUGxS6Ngfou7RccCCv7+VYH2VCD gTgcKuS5ubqWDQwM7tEFoaRo2KnX/71dRrt3ekFQ= X-Virus-Scanned: amavisd-new at dx-it-mx02.dx.sankuai.com Received: from mx02.meituan.com ([127.0.0.1]) by localhost (dx-it-mx02.dx.sankuai.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id LvDQ1GMDhaXG; Sun, 9 Sep 2018 21:21:28 +0800 (CST) Received: from localhost.yf.sankuai.com (unknown [103.37.142.38]) by dx-it-mx02.dx.sankuai.com (Postfix) with ESMTPA id 3F79E297C470; Sun, 9 Sep 2018 21:21:05 +0800 (CST) From: Wang Long To: willy@infradead.org, akpm@linux-foundation.org, wanglong19@meituan.com, zwisler@kernel.org Cc: linux-kernel@vger.kernel.org, jack@suse.cz, heguanjun@meituan.com Subject: [PATCH] radix-tree: optimization for radix_tree_init_maxnodes Date: Sun, 9 Sep 2018 21:21:00 +0800 Message-Id: <1536499260-126634-1-git-send-email-wanglong19@meituan.com> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org if i == 0, height_to_maxnodes[i] = 0, if i >= 1, height_to_maxnodes[i] = height_to_maxnodes[i-1] + __maxindex(i-1) + 1. so delete height_to_maxindex and optimize the calculation of height_to_maxnodes array. Signed-off-by: Wang Long --- lib/radix-tree.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/radix-tree.c b/lib/radix-tree.c index bc03ecc..af02b2c 100644 --- a/lib/radix-tree.c +++ b/lib/radix-tree.c @@ -2242,14 +2242,11 @@ static __init unsigned long __maxindex(unsigned int height) static __init void radix_tree_init_maxnodes(void) { - unsigned long height_to_maxindex[RADIX_TREE_MAX_PATH + 1]; - unsigned int i, j; - - for (i = 0; i < ARRAY_SIZE(height_to_maxindex); i++) - height_to_maxindex[i] = __maxindex(i); - for (i = 0; i < ARRAY_SIZE(height_to_maxnodes); i++) { - for (j = i; j > 0; j--) - height_to_maxnodes[i] += height_to_maxindex[j - 1] + 1; + unsigned int i; + + for (i = 1; i < ARRAY_SIZE(height_to_maxnodes); i++) { + height_to_maxnodes[i] = height_to_maxnodes[i - 1] + + __maxindex(i - 1) + 1; } } -- 1.8.3.1