No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Qais Yousef 0b199ce65b sched/uclamp: Fix wrong implementation of cpu.uclamp.min
[ Upstream commit 0c18f2ecfcc274a4bcc1d122f79ebd4001c3b445 ]

cpu.uclamp.min is a protection as described in cgroup-v2 Resource
Distribution Model

	Documentation/admin-guide/cgroup-v2.rst

which means we try our best to preserve the minimum performance point of
tasks in this group. See full description of cpu.uclamp.min in the
cgroup-v2.rst.

But the current implementation makes it a limit, which is not what was
intended.

For example:

	tg->cpu.uclamp.min = 20%

	p0->uclamp[UCLAMP_MIN] = 0
	p1->uclamp[UCLAMP_MIN] = 50%

	Previous Behavior (limit):

		p0->effective_uclamp = 0
		p1->effective_uclamp = 20%

	New Behavior (Protection):

		p0->effective_uclamp = 20%
		p1->effective_uclamp = 50%

Which is inline with how protections should work.

With this change the cgroup and per-task behaviors are the same, as
expected.

Additionally, we remove the confusing relationship between cgroup and
!user_defined flag.

We don't want for example RT tasks that are boosted by default to max to
change their boost value when they attach to a cgroup. If a cgroup wants
to limit the max performance point of tasks attached to it, then
cpu.uclamp.max must be set accordingly.

Or if they want to set different boost value based on cgroup, then
sysctl_sched_util_clamp_min_rt_default must be used to NOT boost to max
and set the right cpu.uclamp.min for each group to let the RT tasks
obtain the desired boost value when attached to that group.

As it stands the dependency on !user_defined flag adds an extra layer of
complexity that is not required now cpu.uclamp.min behaves properly as
a protection.

The propagation model of effective cpu.uclamp.min in child cgroups as
implemented by cpu_util_update_eff() is still correct. The parent
protection sets an upper limit of what the child cgroups will
effectively get.

Fixes: 3eac870a32 (sched/uclamp: Use TG's clamps to restrict TASK's clamps)
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20210510145032.1934078-2-qais.yousef@arm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-14 16:53:20 +02:00
arch ia64: mca_drv: fix incorrect array size calculation 2021-07-14 16:53:19 +02:00
block block: fix discard request merge 2021-07-14 16:53:19 +02:00
certs certs: Move load_system_certificate_list to a common function 2021-06-30 08:47:55 -04:00
crypto crypto: shash - avoid comparing pointers to exported functions under CFI 2021-07-14 16:53:13 +02:00
Documentation clocksource: Retry clock read if long delays detected 2021-07-14 16:53:18 +02:00
drivers media: I2C: change 'RST' to "RSET" to fix multiple build errors 2021-07-14 16:53:20 +02:00
fs writeback, cgroup: increment isw_nr_in_flight before grabbing an inode 2021-07-14 16:53:19 +02:00
include random32: Fix implicit truncation warning in prandom_seed_state() 2021-07-14 16:53:17 +02:00
init kbuild: add CONFIG_LD_IS_LLD 2021-06-30 08:47:44 -04:00
ipc
kernel sched/uclamp: Fix wrong implementation of cpu.uclamp.min 2021-07-14 16:53:20 +02:00
lib lib: vsprintf: Fix handling of number field widths in vsscanf 2021-07-14 16:53:16 +02:00
LICENSES
mm mm, futex: fix shared futex pgoff on shmem huge page 2021-06-30 08:47:55 -04:00
net SUNRPC: Should wake up the privileged task firstly. 2021-07-14 16:53:05 +02:00
samples samples: vfio-mdev: fix error handing in mdpy_fb_probe() 2021-06-10 13:37:03 +02:00
scripts Makefile: fix GDB warning with CONFIG_RELR 2021-07-14 16:53:12 +02:00
security evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded 2021-07-14 16:53:08 +02:00
sound ALSA: hda/realtek: Apply LED fixup for HP Dragonfly G1, too 2021-07-14 16:52:59 +02:00
tools KVM: selftests: Fix kvm_check_cap() assertion 2021-06-30 08:47:49 -04:00
usr
virt KVM: do not allow mapping valid but non-reference-counted pages 2021-06-30 08:47:50 -04:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Makefile: fix GDB warning with CONFIG_RELR 2021-07-14 16:53:12 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.