sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
Dave Chiluk authored
It has been observed, that highly-threaded, non-cpu-bound applications
running under cpu.cfs_quota_us constraints can hit a high percentage of
periods throttled while simultaneously not consuming the allocated
amount of quota. This use case is typical of user-interactive non-cpu
bound applications, such as those running in kubernetes or mesos when
run on multiple cpu cores.

This has been root caused to cpu-local run queue being allocated per cpu
bandwidth slices, and then not fully using that slice within the period.
At which point the slice and quota expires. This expiration of unused
slice results in applications not being able to utilize the quota for
which they are allocated.

The non-expiration of per-cpu slices was recently fixed by
'commit 512ac999 ("sched/fair: Fix bandwidth timer clock drift
condition")'. Prior to that it appears that this had been broken since
at least 'commit 51f2176d ("sched/...
de53fd7a

===============
Linux Scheduler
===============

.. toctree::
:maxdepth: 1

completion
sched-arch
sched-bwc
sched-deadline
sched-design-CFS
sched-domains
sched-energy
sched-nice-design
sched-rt-group
sched-stats

text_files

.. only:: subproject and html

Indices
=======

* :ref:`genindex`