[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZkNHshuGhY6nBGmJ@chenyu5-mobl2>
Date: Tue, 14 May 2024 19:14:58 +0800
From: Chen Yu <yu.c.chen@...el.com>
To: Swapnil Sapkal <swapnil.sapkal@....com>
CC: <linux-kernel@...r.kernel.org>, <mingo@...hat.com>,
<peterz@...radead.org>, <torvalds@...ux-foundation.org>,
<juri.lelli@...hat.com>, <dietmar.eggemann@....com>, <rostedt@...dmis.org>,
<mgorman@...e.de>, <bristot@...hat.com>, <vschneid@...hat.com>,
<vincent.guittot@...aro.org>, <gautham.shenoy@....com>,
<sshegde@...ux.ibm.com>, <kprateek.nayak@....com>
Subject: Re: [RESEND][PATCH v3 1/1] sched: Report the different kinds of
imbalances in /proc/schedstat
On 2024-05-14 at 04:44:45 +0000, Swapnil Sapkal wrote:
> In /proc/schedstat, lb_imbalance reports the sum of imbalances
> discovered in sched domains with each call to sched_balance_rq(), which is
> not very useful because lb_imbalance does not mention whether the imbalance
> is due to load, utilization, nr_tasks or misfit_tasks. Remove this field
> from /proc/schedstat.
>
> Currently there is no field in /proc/schedstat to report different types
> of imbalances. Introduce new fields in /proc/schedstat to report the
> total imbalances in load, utilization, nr_tasks or misfit_tasks.
>
> Added fields to /proc/schedstat:
> - lb_imbalance_load: Total imbalance due to load.
> - lb_imbalance_util: Total imbalance due to utilization.
> - lb_imbalance_task: Total imbalance due to number of tasks.
> - lb_imbalance_misfit: Total imbalance due to misfit tasks.
>
> Reviewed-by: Shrikanth Hegde <sshegde@...ux.ibm.com>
> Signed-off-by: Swapnil Sapkal <swapnil.sapkal@....com>
> ---
> Documentation/scheduler/sched-stats.rst | 121 ++++++++++++++----------
> include/linux/sched/topology.h | 5 +-
> kernel/sched/fair.c | 21 +++-
> kernel/sched/stats.c | 7 +-
> 4 files changed, 99 insertions(+), 55 deletions(-)
[...]
> diff --git a/kernel/sched/stats.c b/kernel/sched/stats.c
> index 78e48f5426ee..a02bc9db2f1c 100644
> --- a/kernel/sched/stats.c
> +++ b/kernel/sched/stats.c
> @@ -151,11 +151,14 @@ static int show_schedstat(struct seq_file *seq, void *v)
> seq_printf(seq, "domain%d %*pb", dcount++,
> cpumask_pr_args(sched_domain_span(sd)));
> for (itype = 0; itype < CPU_MAX_IDLE_TYPES; itype++) {
> - seq_printf(seq, " %u %u %u %u %u %u %u %u",
> + seq_printf(seq, " %u %u %u %u %u %u %u %u %u %u %u",
> sd->lb_count[itype],
> sd->lb_balanced[itype],
> sd->lb_failed[itype],
> - sd->lb_imbalance[itype],
> + sd->lb_imbalance_load[itype],
> + sd->lb_imbalance_util[itype],
> + sd->lb_imbalance_task[itype],
> + sd->lb_imbalance_misfit[itype],
> sd->lb_gained[itype],
> sd->lb_hot_gained[itype],
> sd->lb_nobusyq[itype],
Do we need to increase SCHEDSTAT_VERSION to 16?
thanks,
Chenyu
Powered by blists - more mailing lists