From: Yicong Yang <yangyicong@huawei.com> To: <peterz@infradead.org>, <mingo@redhat.com>, <juri.lelli@redhat.com>, <vincent.guittot@linaro.org>, <dietmar.eggemann@arm.com>, <tim.c.chen@linux.intel.com>, <yu.c.chen@intel.com>, <gautham.shenoy@amd.com>, <mgorman@suse.de>, <vschneid@redhat.com>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org> Cc: <rostedt@goodmis.org>, <bsegall@google.com>, <bristot@redhat.com>, <prime.zeng@huawei.com>, <yangyicong@hisilicon.com>, <jonathan.cameron@huawei.com>, <ego@linux.vnet.ibm.com>, <srikar@linux.vnet.ibm.com>, <linuxarm@huawei.com>, <21cnbao@gmail.com>, <kprateek.nayak@amd.com>, <wuyun.abel@bytedance.com> Subject: [PATCH v8 0/2] sched/fair: Scan cluster before scanning LLC in wake-up path Date: Tue, 30 May 2023 15:02:51 +0800 [thread overview] Message-ID: <20230530070253.33306-1-yangyicong@huawei.com> (raw) From: Yicong Yang <yangyicong@hisilicon.com> This is the follow-up work to support cluster scheduler. Previously we have added cluster level in the scheduler for both ARM64[1] and X86[2] to support load balance between clusters to bring more memory bandwidth and decrease cache contention. This patchset, on the other hand, takes care of wake-up path by giving CPUs within the same cluster a try before scanning the whole LLC to benefit those tasks communicating with each other. [1] 778c558f49a2 ("sched: Add cluster scheduler level in core and related Kconfig for ARM64") [2] 66558b730f25 ("sched: Add cluster scheduler level for x86") Change since v7: - Optimize by choosing prev_cpu/recent_used_cpu when possible after failed to scanning for an idle CPU in cluster/LLC. Thanks Chen Yu for testing on Jacobsville Link: https://lore.kernel.org/all/20220915073423.25535-1-yangyicong@huawei.com/ Change for RESEND: - Collect tag from Chen Yu and rebase on the latest tip/sched/core. Thanks. Link: https://lore.kernel.org/lkml/20220822073610.27205-1-yangyicong@huawei.com/ Change since v6: - rebase on 6.0-rc1 Link: https://lore.kernel.org/lkml/20220726074758.46686-1-yangyicong@huawei.com/ Change since v5: - Improve patch 2 according to Peter's suggestion: - use sched_cluster_active to indicate whether cluster is active - consider SMT case and use wrap iteration when scanning cluster - Add Vincent's tag Thanks. Link: https://lore.kernel.org/lkml/20220720081150.22167-1-yangyicong@hisilicon.com/ Change since v4: - rename cpus_share_resources to cpus_share_lowest_cache to be more informative, per Tim - return -1 when nr==0 in scan_cluster(), per Abel Thanks! Link: https://lore.kernel.org/lkml/20220609120622.47724-1-yangyicong@hisilicon.com/ Change since v3: - fix compile error when !CONFIG_SCHED_CLUSTER, reported by lkp test. Link: https://lore.kernel.org/lkml/20220608095758.60504-1-yangyicong@hisilicon.com/ Change since v2: - leverage SIS_PROP to suspend redundant scanning when LLC is overloaded - remove the ping-pong suppression - address the comment from Tim, thanks. Link: https://lore.kernel.org/lkml/20220126080947.4529-1-yangyicong@hisilicon.com/ Change since v1: - regain the performance data based on v5.17-rc1 - rename cpus_share_cluster to cpus_share_resources per Vincent and Gautham, thanks! Link: https://lore.kernel.org/lkml/20211215041149.73171-1-yangyicong@hisilicon.com/ Barry Song (2): sched: Add per_cpu cluster domain info and cpus_share_lowest_cache API sched/fair: Scan cluster before scanning LLC in wake-up path include/linux/sched/sd_flags.h | 7 +++++ include/linux/sched/topology.h | 8 +++++- kernel/sched/core.c | 12 ++++++++ kernel/sched/fair.c | 51 ++++++++++++++++++++++++++++++---- kernel/sched/sched.h | 3 ++ kernel/sched/topology.c | 25 +++++++++++++++++ 6 files changed, 100 insertions(+), 6 deletions(-) -- 2.24.0
WARNING: multiple messages have this Message-ID (diff)
From: Yicong Yang <yangyicong@huawei.com> To: <peterz@infradead.org>, <mingo@redhat.com>, <juri.lelli@redhat.com>, <vincent.guittot@linaro.org>, <dietmar.eggemann@arm.com>, <tim.c.chen@linux.intel.com>, <yu.c.chen@intel.com>, <gautham.shenoy@amd.com>, <mgorman@suse.de>, <vschneid@redhat.com>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org> Cc: <rostedt@goodmis.org>, <bsegall@google.com>, <bristot@redhat.com>, <prime.zeng@huawei.com>, <yangyicong@hisilicon.com>, <jonathan.cameron@huawei.com>, <ego@linux.vnet.ibm.com>, <srikar@linux.vnet.ibm.com>, <linuxarm@huawei.com>, <21cnbao@gmail.com>, <kprateek.nayak@amd.com>, <wuyun.abel@bytedance.com> Subject: [PATCH v8 0/2] sched/fair: Scan cluster before scanning LLC in wake-up path Date: Tue, 30 May 2023 15:02:51 +0800 [thread overview] Message-ID: <20230530070253.33306-1-yangyicong@huawei.com> (raw) From: Yicong Yang <yangyicong@hisilicon.com> This is the follow-up work to support cluster scheduler. Previously we have added cluster level in the scheduler for both ARM64[1] and X86[2] to support load balance between clusters to bring more memory bandwidth and decrease cache contention. This patchset, on the other hand, takes care of wake-up path by giving CPUs within the same cluster a try before scanning the whole LLC to benefit those tasks communicating with each other. [1] 778c558f49a2 ("sched: Add cluster scheduler level in core and related Kconfig for ARM64") [2] 66558b730f25 ("sched: Add cluster scheduler level for x86") Change since v7: - Optimize by choosing prev_cpu/recent_used_cpu when possible after failed to scanning for an idle CPU in cluster/LLC. Thanks Chen Yu for testing on Jacobsville Link: https://lore.kernel.org/all/20220915073423.25535-1-yangyicong@huawei.com/ Change for RESEND: - Collect tag from Chen Yu and rebase on the latest tip/sched/core. Thanks. Link: https://lore.kernel.org/lkml/20220822073610.27205-1-yangyicong@huawei.com/ Change since v6: - rebase on 6.0-rc1 Link: https://lore.kernel.org/lkml/20220726074758.46686-1-yangyicong@huawei.com/ Change since v5: - Improve patch 2 according to Peter's suggestion: - use sched_cluster_active to indicate whether cluster is active - consider SMT case and use wrap iteration when scanning cluster - Add Vincent's tag Thanks. Link: https://lore.kernel.org/lkml/20220720081150.22167-1-yangyicong@hisilicon.com/ Change since v4: - rename cpus_share_resources to cpus_share_lowest_cache to be more informative, per Tim - return -1 when nr==0 in scan_cluster(), per Abel Thanks! Link: https://lore.kernel.org/lkml/20220609120622.47724-1-yangyicong@hisilicon.com/ Change since v3: - fix compile error when !CONFIG_SCHED_CLUSTER, reported by lkp test. Link: https://lore.kernel.org/lkml/20220608095758.60504-1-yangyicong@hisilicon.com/ Change since v2: - leverage SIS_PROP to suspend redundant scanning when LLC is overloaded - remove the ping-pong suppression - address the comment from Tim, thanks. Link: https://lore.kernel.org/lkml/20220126080947.4529-1-yangyicong@hisilicon.com/ Change since v1: - regain the performance data based on v5.17-rc1 - rename cpus_share_cluster to cpus_share_resources per Vincent and Gautham, thanks! Link: https://lore.kernel.org/lkml/20211215041149.73171-1-yangyicong@hisilicon.com/ Barry Song (2): sched: Add per_cpu cluster domain info and cpus_share_lowest_cache API sched/fair: Scan cluster before scanning LLC in wake-up path include/linux/sched/sd_flags.h | 7 +++++ include/linux/sched/topology.h | 8 +++++- kernel/sched/core.c | 12 ++++++++ kernel/sched/fair.c | 51 ++++++++++++++++++++++++++++++---- kernel/sched/sched.h | 3 ++ kernel/sched/topology.c | 25 +++++++++++++++++ 6 files changed, 100 insertions(+), 6 deletions(-) -- 2.24.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2023-05-30 7:05 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-30 7:02 Yicong Yang [this message] 2023-05-30 7:02 ` [PATCH v8 0/2] sched/fair: Scan cluster before scanning LLC in wake-up path Yicong Yang 2023-05-30 7:02 ` [PATCH v8 1/2] sched: Add per_cpu cluster domain info and cpus_share_lowest_cache API Yicong Yang 2023-05-30 7:02 ` Yicong Yang 2023-05-30 11:38 ` Peter Zijlstra 2023-05-30 11:38 ` Peter Zijlstra 2023-05-30 13:24 ` Yicong Yang 2023-05-30 13:24 ` Yicong Yang 2023-05-30 7:02 ` [PATCH v8 2/2] sched/fair: Scan cluster before scanning LLC in wake-up path Yicong Yang 2023-05-30 7:02 ` Yicong Yang 2023-05-30 11:55 ` Peter Zijlstra 2023-05-30 11:55 ` Peter Zijlstra 2023-05-30 14:39 ` Yicong Yang 2023-05-30 14:39 ` Yicong Yang 2023-05-31 8:21 ` Yicong Yang 2023-05-31 8:21 ` Yicong Yang 2023-06-08 3:26 ` Chen Yu 2023-06-08 3:26 ` Chen Yu 2023-06-08 6:45 ` Yicong Yang 2023-06-08 6:45 ` Yicong Yang 2023-06-09 10:50 ` Chen Yu 2023-06-09 10:50 ` Chen Yu 2023-06-13 7:36 ` Yicong Yang 2023-06-13 7:36 ` Yicong Yang 2023-06-13 8:09 ` Yicong Yang 2023-06-13 8:09 ` Yicong Yang 2023-06-13 12:44 ` Chen Yu 2023-06-13 12:44 ` Chen Yu 2023-06-15 7:59 ` Yicong Yang 2023-06-15 7:59 ` Yicong Yang 2023-06-16 6:00 ` Chen Yu 2023-06-16 6:00 ` Chen Yu 2023-06-12 5:01 ` Gautham R. Shenoy 2023-06-12 5:22 ` Chen Yu 2023-06-13 7:44 ` Yicong Yang 2023-06-13 7:44 ` Yicong Yang
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=20230530070253.33306-1-yangyicong@huawei.com \ --to=yangyicong@huawei.com \ --cc=21cnbao@gmail.com \ --cc=bristot@redhat.com \ --cc=bsegall@google.com \ --cc=dietmar.eggemann@arm.com \ --cc=ego@linux.vnet.ibm.com \ --cc=gautham.shenoy@amd.com \ --cc=jonathan.cameron@huawei.com \ --cc=juri.lelli@redhat.com \ --cc=kprateek.nayak@amd.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=mgorman@suse.de \ --cc=mingo@redhat.com \ --cc=peterz@infradead.org \ --cc=prime.zeng@huawei.com \ --cc=rostedt@goodmis.org \ --cc=srikar@linux.vnet.ibm.com \ --cc=tim.c.chen@linux.intel.com \ --cc=vincent.guittot@linaro.org \ --cc=vschneid@redhat.com \ --cc=wuyun.abel@bytedance.com \ --cc=yangyicong@hisilicon.com \ --cc=yu.c.chen@intel.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: linkBe 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.