[PATCH 0/3] sched/fair: Remove hardcoded fits_capacity() margin

From: Qais Yousef
Date: Mon Feb 05 2024 - 17:34:04 EST


This series is split from [1]. I thought it might be simpler to split the
series and address the intertwined problems separately as some of them are
easier to deal with than others.

This series focuses on migration margin only, or the check in fits_capacity().

I realized that I had a bug where I am not taking invariance into account. This
addressed now. Commit message in patch 3 has all the details. Patches 1 and
2 add helper functions to convert between time and util.

I have issues with my test setup so didn't collect proper power/perf numbers
like I did in [1]. I didn't see any bad power impact from preliminary tests.
Perf numbers are definitely better.

I hope to get some feedback to ensure there are no howlers and I'll collect
more data for the next posting.

Generally I think this is a step in the right directions and, as I find out as
I fix more problems, there are a lot of areas that needs to be revisited and
improved but it's hard to fix them all in one go. Particularly the definition
of overutilized and improving our energy calculation in feec() and balancing
work at wake up and load balancer.

[1] https://lore.kernel.org/lkml/20231208002342.367117-1-qyousef@xxxxxxxxxxx/

Cheers

--
Qais Yousef

Qais Yousef (3):
sched/pelt: Add a new function to approximate the future util_avg
value
sched/pelt: Add a new function to approximate runtime to reach given
util
sched/fair: Remove magic hardcoded margin in fits_capacity()

kernel/sched/core.c | 1 +
kernel/sched/fair.c | 42 +++++++++++++++++++++++++++++++++++-------
kernel/sched/pelt.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
kernel/sched/sched.h | 3 +++
4 files changed, 81 insertions(+), 8 deletions(-)

--
2.34.1