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

Message ID 20240205223344.2280519-1-qyousef@layalina.io
Headers
Series sched/fair: Remove hardcoded fits_capacity() margin |

Message

Qais Yousef Feb. 5, 2024, 10:33 p.m. UTC
  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@layalina.io/

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(-)