Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp2850059iog; Mon, 27 Jun 2022 04:19:57 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sBDbt0/ScR7/SaqyDaHuRnTeDo2r0Yg67wBuQ0/OAPTwqqGZqtksXLgzpvImx2GdI1SIPO X-Received: by 2002:a05:6402:249d:b0:437:8622:6de8 with SMTP id q29-20020a056402249d00b0043786226de8mr8751232eda.113.1656328797812; Mon, 27 Jun 2022 04:19:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656328797; cv=none; d=google.com; s=arc-20160816; b=HFH1GkzEjj2jx6H5zZdC1+lhzKg0orc/3Y1VRMCPhdITXQRTS7Ovvjd3mMvaKW8A6U ud67F4XwDUH7F2uMohH/qKwcjW8rFG5Tm87ajtWILEpbfK8uqbvS8RuQ2kouZukmDNkK zSWHyFTjiYvzdGPpW3lqKO51m8nIjyl8djHOhxh5hcS+SYM5yqRayCeG0b+nghqdP/wl NL8xbaIuEbyeN+UJOzIWC6F373ODdEfltWU6U98hfheYb62kEJVgM5WsvkYVpO5MsGl0 u3JSuNOZ1zWioCJo4QQQdMJcqaZde9Kbc9yg4vjpuk66htN1P+spWLMNSdXx1ih5nzY2 sbIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=F9yQ08wbjOQZUv+8jgi3PDPzIspMo8FaCiOBj4xP6E4=; b=ll7jAIJaFjcKDonV723fhemyHfn0OZzpUXg3jDn/KH9drW3xRSPr7n60g3dhX1q4zy /sxKp4hlGn7tz/4Kzj3agiQRbR2rAs5TCIFZWMB35lQZVZQOS9AHZ1inGU4OsrYyMVwK JyBOTxHdTU7aXKr7vxufgQ6NT1Pi2mhV/HVgluue4SBO8oZU1bBbO2BPYdLpCEzSBx1F vMaZds2peEQkl8jjxDo8/TTN6qQE20Fpu/QAIKLhi/+W8J55SlQswmmsQ0S3aF2rJ5zW d2d/sBZ/V4TyLyYBgEYrp9z3G2oK3G0yl6sf0kGe+RetTYM9X/XreU3Zawtrpu4dRY7e erSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=YQWZ3s77; 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=NONE sp=NONE dis=NONE) header.from=bytedance.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ht8-20020a170907608800b007262a166933si12815693ejc.165.2022.06.27.04.19.31; Mon, 27 Jun 2022 04:19:57 -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; dkim=pass header.i=@bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=YQWZ3s77; 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=NONE sp=NONE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234374AbiF0KyN (ORCPT + 99 others); Mon, 27 Jun 2022 06:54:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233895AbiF0KyM (ORCPT ); Mon, 27 Jun 2022 06:54:12 -0400 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62471640E for ; Mon, 27 Jun 2022 03:54:11 -0700 (PDT) Received: by mail-pj1-x1031.google.com with SMTP id w24so8872174pjg.5 for ; Mon, 27 Jun 2022 03:54:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=F9yQ08wbjOQZUv+8jgi3PDPzIspMo8FaCiOBj4xP6E4=; b=YQWZ3s7740+dkkYO1J9fZAjwhos1M8HnkAw5WmSibz88i9znYQGE9lGhbIyLldGrBF b6rQbIPdNNid4hR13Nus1tUA5LsPVdbwfhuTF9OePGob9EOPHMY1BEu+H6NrNvPBjydk XdHYwMQ4mDOkQ0LoULipaUR3rO0NWmGM84UrmPt52V8kzJSW4mn1uo2xK2CdygidPq/2 k7vieN6Kk82pOx287qKu/mgTDrvkZoKvJyVnVFWd5hd2F77X8gV3NqjaoKDjIw99Wigx 9BFRzpkg7pehlzTUeBAgFxhSHattWK9WnrQ9lFIpA34jiOz0XPOLTZBP28I+er7M1tt+ 7y/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=F9yQ08wbjOQZUv+8jgi3PDPzIspMo8FaCiOBj4xP6E4=; b=zLDGNa+tAks1OTl/LByvFFsLAa+rgGAr9i6GUedDryh12Qb3tQCu35dbtweL4P1+sM VXmYTxWEfF4RwQYz/xgs67+4+qzoGeqcrrKxMd378bZl0zhq+tASrI1aR63HPzhVd5nT XyykCn2LKWhyIZiUra6tDoIvFejPjZNJJh/VYIs+3qQ+Sh/cysdmCMr9sTvP/RCLgnWP k0jcUqAeBYKjIvciigj6+9vBrqUIL2AdN4xjxnMTlLK8iWXGBH+EpresHqMgt5I8l4h3 ucxSxppuKpcIPii7EepsTwBvQM4S0+VcXorWuUN2IS0fGP8yM+5PsmgcMgm7APsP0dpw 5bzw== X-Gm-Message-State: AJIora8TLCPd+w7zFJfoGp5Dc49jo2AHm18zk5Lo6J1jHaeFATWx3zK6 kuc/UVwlSRTTAzCbMbte+KWcoQ== X-Received: by 2002:a17:90b:3a89:b0:1ec:93d2:f47d with SMTP id om9-20020a17090b3a8900b001ec93d2f47dmr14933479pjb.139.1656327250923; Mon, 27 Jun 2022 03:54:10 -0700 (PDT) Received: from C02G87K0MD6R.bytedance.net ([139.177.225.228]) by smtp.gmail.com with ESMTPSA id t10-20020a62d14a000000b0051b90ac6c15sm7017777pfl.125.2022.06.27.03.54.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jun 2022 03:54:10 -0700 (PDT) From: Hao Jia To: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com Cc: linux-kernel@vger.kernel.org, Hao Jia Subject: [PATCH] sched/topology: Optimized copy default topology in sched_init_numa() Date: Mon, 27 Jun 2022 18:53:49 +0800 Message-Id: <20220627105349.80715-1-jiahao.os@bytedance.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE 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 The size of struct sched_domain_topology_level is 64 bytes. For NUMA platforms, almost all are multi-core (enable CONFIG_SCHED_MC), That is to say, the default_topology array has at least 128 bytes that need to be copied in sched_init_numa(). For most x86 platforms, CONFIG_SCHED_SMT will be enabled, so more copies will be required. And memcpy() will be optimized under different architectures. Fortunately, for platforms with CONFIG_NUMA enabled, these optimizations are likely to be used. So, let's use memcpy to copy default topology in sched_init_numa(). Tests are done in an Intel Xeon(R) Platinum 8260 CPU@2.40GHz machine with 2 NUMA nodes each of which has 24 cores with SMT2 enabled, so 96 CPUs in total. Use RDTSC to count time-consuming, and based on 5.19-rc4. Enable CONFIG_SCHED_SMT && CONFIG_SCHED_CLUSTER && CONFIG_SCHED_MC, So the default_topology array has 256 bytes that need to be copied in sched_init_numa(). 5.19-rc4 5.19-rc4 with patch average tsc ticks 516.57 85.33 (-83.48%*) Enable CONFIG_SCHED_MC, So the default_topology array has 128 bytes that need to be copied in sched_init_numa(). 5.19-rc4 5.19-rc4 with patch average tsc ticks 65.71 55.00 (-16.30%*) Signed-off-by: Hao Jia --- kernel/sched/topology.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 05b6c2ad90b9..c6f497d263cd 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1918,8 +1918,7 @@ void sched_init_numa(int offline_node) /* * Copy the default topology bits.. */ - for (i = 0; sched_domain_topology[i].mask; i++) - tl[i] = sched_domain_topology[i]; + memcpy(tl, sched_domain_topology, sizeof(struct sched_domain_topology_level) * i); /* * Add the NUMA identity distance, aka single NODE. -- 2.32.0