Re: [PATCH v2 1/1] sched: Report the different kinds of imbalances in /proc/schedstat

From: Swapnil Sapkal
Date: Mon Mar 18 2024 - 01:04:45 EST


Hello Shrikanth,

On 3/15/2024 10:26 PM, Shrikanth Hegde wrote:

On 3/15/24 7:25 PM, 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.

Signed-off-by: Swapnil Sapkal <swapnil.sapkal@xxxxxxx>
---
Documentation/scheduler/sched-stats.rst | 119 ++++++++++++++----------
include/linux/sched/topology.h | 5 +-
kernel/sched/fair.c | 21 ++++-
kernel/sched/stats.c | 7 +-
4 files changed, 98 insertions(+), 54 deletions(-)

diff --git a/Documentation/scheduler/sched-stats.rst b/Documentation/scheduler/sched-stats.rst
index 7c2b16c4729d..e2a6b53a38ee 100644
--- a/Documentation/scheduler/sched-stats.rst
+++ b/Documentation/scheduler/sched-stats.rst
@@ -6,10 +6,15 @@ Version 16 of schedstats changed the order of definitions within
'enum cpu_idle_type', which changed the order of [CPU_MAX_IDLE_TYPES]
columns in show_schedstat(). In particular the position of CPU_IDLE
and __CPU_NOT_IDLE changed places. The size of the array is unchanged.
Size of the array would change after this patch. So this line can be updated.

From this line it is not clear that whether it is referring to enum size or number of columns. I will update this in next version as enum size is unchanged.

+Also stop reporting 'lb_imbalance' as it has no significance anymore
+and instead add more relevant fields namely 'lb_imbalance_load',
+'lb_imbalance_util', 'lb_imbalance_task' and 'lb_imbalance_misfit'.
Rest of the changes look good to me.
Reviewed-by: Shrikanth Hegde <sshegde@xxxxxxxxxxxxx>

--

Thanks and Regards, Swapnil