* [PATCH v2 0/4] defconfig: drop RT_GROUP_SCHED=y
@ 2024-08-22 17:43 Celeste Liu
2024-08-22 17:43 ` [PATCH v2 1/4] riscv: " Celeste Liu
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Celeste Liu @ 2024-08-22 17:43 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter
Cc: Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra,
Celeste Liu, Xi Ruoyao, Stefan Wahren, Kevin Hilman
For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
needs an RT budget assigned, otherwise the processes in it will not be able to
get RT at all. The problem with RT group scheduling is that it requires the
budget assigned but there's no way we could assign a default budget, since the
values to assign are both upper and lower time limits, are absolute, and need to
be sum up to < 1 for each individal cgroup. That means we cannot really come up
with values that would work by default in the general case.[1]
For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
can only be enabled when all RT processes are in the root cgroup. But it will
lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
support it.[2]
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
[2]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
---
Changes in v2:
* Remove MIPS and PowerPC patch because of merged.
* Link to v1: https://lore.kernel.org/lkml/20240530111947.549474-8-CoelacanthusHex@gmail.com/T
Celeste Liu (6):
riscv: defconfig: drop RT_GROUP_SCHED=y
loongarch: defconfig: drop RT_GROUP_SCHED=y
sh: defconfig: drop RT_GROUP_SCHED=y from sdk7786/urquell
arm: defconfig: drop RT_GROUP_SCHED=y from bcm2855/tegra/omap2plus
arch/arm/configs/bcm2835_defconfig | 1 -
arch/arm/configs/omap2plus_defconfig | 1 -
arch/arm/configs/tegra_defconfig | 1 -
arch/loongarch/configs/loongson3_defconfig | 1 -
arch/riscv/configs/defconfig | 1 -
arch/sh/configs/sdk7786_defconfig | 1 -
arch/sh/configs/urquell_defconfig | 1 -
7 files changed, 7 deletions(-)
--
2.45.1
---
Celeste Liu (4):
riscv: defconfig: drop RT_GROUP_SCHED=y
loongarch: defconfig: drop RT_GROUP_SCHED=y
sh: defconfig: drop RT_GROUP_SCHED=y from sdk7786/urquell
arm: defconfig: drop RT_GROUP_SCHED=y from bcm2835/tegra/omap2plus
arch/arm/configs/bcm2835_defconfig | 1 -
arch/arm/configs/omap2plus_defconfig | 1 -
arch/arm/configs/tegra_defconfig | 1 -
arch/loongarch/configs/loongson3_defconfig | 1 -
arch/riscv/configs/defconfig | 1 -
arch/sh/configs/sdk7786_defconfig | 1 -
arch/sh/configs/urquell_defconfig | 1 -
7 files changed, 7 deletions(-)
---
base-commit: afcd48134c58d6af45fb3fdb648f1260b20f2326
change-id: 20240627-fix-riscv-rt_group_sched-d2e014be48da
Best regards,
--
Celeste Liu <CoelacanthusHex@gmail.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/4] riscv: defconfig: drop RT_GROUP_SCHED=y
2024-08-22 17:43 [PATCH v2 0/4] defconfig: drop RT_GROUP_SCHED=y Celeste Liu
@ 2024-08-22 17:43 ` Celeste Liu
2024-09-09 11:53 ` Conor Dooley
2024-08-22 17:43 ` [PATCH v2 2/4] loongarch: " Celeste Liu
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Celeste Liu @ 2024-08-22 17:43 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter
Cc: Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra,
Celeste Liu
Commit ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
introduced it because of Docker, but Docker has removed this requirement
since [1] (2023-04-19).
For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
needs an RT budget assigned, otherwise the processes in it will not be able to
get RT at all. The problem with RT group scheduling is that it requires the
budget assigned but there's no way we could assign a default budget, since the
values to assign are both upper and lower time limits, are absolute, and need to
be sum up to < 1 for each individal cgroup. That means we cannot really come up
with values that would work by default in the general case.[2]
For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
can only be enabled when all RT processes are in the root cgroup. But it will
lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
support it.[3]
[1]: https://github.com/moby/moby/commit/005150ed69c540fb0b5323e0f2208608c1204536
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
[3]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
Fixes: ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
---
arch/riscv/configs/defconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
index 12dc8c73a8ac..de85c3ab261e 100644
--- a/arch/riscv/configs/defconfig
+++ b/arch/riscv/configs/defconfig
@@ -9,7 +9,6 @@ CONFIG_CGROUPS=y
CONFIG_MEMCG=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
-CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
--
2.46.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/4] loongarch: defconfig: drop RT_GROUP_SCHED=y
2024-08-22 17:43 [PATCH v2 0/4] defconfig: drop RT_GROUP_SCHED=y Celeste Liu
2024-08-22 17:43 ` [PATCH v2 1/4] riscv: " Celeste Liu
@ 2024-08-22 17:43 ` Celeste Liu
2024-08-22 17:43 ` [PATCH v2 3/4] sh: defconfig: drop RT_GROUP_SCHED=y from sdk7786/urquell Celeste Liu
2024-08-22 17:43 ` [PATCH v2 4/4] arm: defconfig: drop RT_GROUP_SCHED=y from bcm2835/tegra/omap2plus Celeste Liu
3 siblings, 0 replies; 11+ messages in thread
From: Celeste Liu @ 2024-08-22 17:43 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter
Cc: Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra,
Xi Ruoyao, Celeste Liu
For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
needs an RT budget assigned, otherwise the processes in it will not be able to
get RT at all. The problem with RT group scheduling is that it requires the
budget assigned but there's no way we could assign a default budget, since the
values to assign are both upper and lower time limits, are absolute, and need to
be sum up to < 1 for each individal cgroup. That means we cannot really come up
with values that would work by default in the general case.[1]
For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
can only be enabled when all RT processes are in the root cgroup. But it will
lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
support it.[2]
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
[2]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
Reviewed-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
---
arch/loongarch/configs/loongson3_defconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/loongarch/configs/loongson3_defconfig b/arch/loongarch/configs/loongson3_defconfig
index b4252c357c8e..4d93adb3f1a2 100644
--- a/arch/loongarch/configs/loongson3_defconfig
+++ b/arch/loongarch/configs/loongson3_defconfig
@@ -23,7 +23,6 @@ CONFIG_NUMA_BALANCING=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CFS_BANDWIDTH=y
-CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
CONFIG_CGROUP_FREEZER=y
--
2.46.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/4] sh: defconfig: drop RT_GROUP_SCHED=y from sdk7786/urquell
2024-08-22 17:43 [PATCH v2 0/4] defconfig: drop RT_GROUP_SCHED=y Celeste Liu
2024-08-22 17:43 ` [PATCH v2 1/4] riscv: " Celeste Liu
2024-08-22 17:43 ` [PATCH v2 2/4] loongarch: " Celeste Liu
@ 2024-08-22 17:43 ` Celeste Liu
2024-08-22 17:43 ` [PATCH v2 4/4] arm: defconfig: drop RT_GROUP_SCHED=y from bcm2835/tegra/omap2plus Celeste Liu
3 siblings, 0 replies; 11+ messages in thread
From: Celeste Liu @ 2024-08-22 17:43 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter
Cc: Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra,
Celeste Liu
For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
needs an RT budget assigned, otherwise the processes in it will not be able to
get RT at all. The problem with RT group scheduling is that it requires the
budget assigned but there's no way we could assign a default budget, since the
values to assign are both upper and lower time limits, are absolute, and need to
be sum up to < 1 for each individal cgroup. That means we cannot really come up
with values that would work by default in the general case.[1]
For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
can only be enabled when all RT processes are in the root cgroup. But it will
lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
support it.[2]
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
[2]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
---
arch/sh/configs/sdk7786_defconfig | 1 -
arch/sh/configs/urquell_defconfig | 1 -
2 files changed, 2 deletions(-)
diff --git a/arch/sh/configs/sdk7786_defconfig b/arch/sh/configs/sdk7786_defconfig
index 7b427c17fbfe..3599b1683593 100644
--- a/arch/sh/configs/sdk7786_defconfig
+++ b/arch/sh/configs/sdk7786_defconfig
@@ -17,7 +17,6 @@ CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_MEMCG=y
CONFIG_CGROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
diff --git a/arch/sh/configs/urquell_defconfig b/arch/sh/configs/urquell_defconfig
index 00ef62133b04..9cf4a719001e 100644
--- a/arch/sh/configs/urquell_defconfig
+++ b/arch/sh/configs/urquell_defconfig
@@ -15,7 +15,6 @@ CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_MEMCG=y
CONFIG_CGROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_PROFILING=y
CONFIG_MODULES=y
--
2.46.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/4] arm: defconfig: drop RT_GROUP_SCHED=y from bcm2835/tegra/omap2plus
2024-08-22 17:43 [PATCH v2 0/4] defconfig: drop RT_GROUP_SCHED=y Celeste Liu
` (2 preceding siblings ...)
2024-08-22 17:43 ` [PATCH v2 3/4] sh: defconfig: drop RT_GROUP_SCHED=y from sdk7786/urquell Celeste Liu
@ 2024-08-22 17:43 ` Celeste Liu
3 siblings, 0 replies; 11+ messages in thread
From: Celeste Liu @ 2024-08-22 17:43 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter
Cc: Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra,
Stefan Wahren, Kevin Hilman, Celeste Liu
Commit 673ce00c5d6c ("ARM: omap2plus_defconfig: Add support for distros
with systemd") said it's because of recommendation from systemd. But
systemd changed their recommendation later.[1]
For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
needs an RT budget assigned, otherwise the processes in it will not be able to
get RT at all. The problem with RT group scheduling is that it requires the
budget assigned but there's no way we could assign a default budget, since the
values to assign are both upper and lower time limits, are absolute, and need to
be sum up to < 1 for each individal cgroup. That means we cannot really come up
with values that would work by default in the general case.[2]
For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
can only be enabled when all RT processes are in the root cgroup. But it will
lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
support it.
[1]: https://github.com/systemd/systemd/commit/f4e74be1856b3ac058acbf1be321c31d5299f69f
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
Tested-by: Stefan Wahren <wahrenst@gmx.net>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
---
arch/arm/configs/bcm2835_defconfig | 1 -
arch/arm/configs/omap2plus_defconfig | 1 -
arch/arm/configs/tegra_defconfig | 1 -
3 files changed, 3 deletions(-)
diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig
index b5f0bd8dd536..27dc3bf6b124 100644
--- a/arch/arm/configs/bcm2835_defconfig
+++ b/arch/arm/configs/bcm2835_defconfig
@@ -7,7 +7,6 @@ CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_CFS_BANDWIDTH=y
-CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_DEVICE=y
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index 3a166c2f02bd..9cb265c8d414 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -13,7 +13,6 @@ CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
-CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_DEVICE=y
diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index d2a094ad360c..3a9bda2bf422 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -6,7 +6,6 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_DEBUG=y
--
2.46.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] riscv: defconfig: drop RT_GROUP_SCHED=y
2024-08-22 17:43 ` [PATCH v2 1/4] riscv: " Celeste Liu
@ 2024-09-09 11:53 ` Conor Dooley
2024-09-09 12:14 ` Celeste Liu
0 siblings, 1 reply; 11+ messages in thread
From: Conor Dooley @ 2024-09-09 11:53 UTC (permalink / raw)
To: Celeste Liu
Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter,
Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra
[-- Attachment #1: Type: text/plain, Size: 2325 bytes --]
On Fri, Aug 23, 2024 at 01:43:26AM +0800, Celeste Liu wrote:
> Commit ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
> introduced it because of Docker, but Docker has removed this requirement
> since [1] (2023-04-19).
>
> For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
> needs an RT budget assigned, otherwise the processes in it will not be able to
> get RT at all. The problem with RT group scheduling is that it requires the
> budget assigned but there's no way we could assign a default budget, since the
> values to assign are both upper and lower time limits, are absolute, and need to
> be sum up to < 1 for each individal cgroup. That means we cannot really come up
> with values that would work by default in the general case.[2]
>
> For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
> can only be enabled when all RT processes are in the root cgroup. But it will
> lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
>
> Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
> support it.[3]
>
> [1]: https://github.com/moby/moby/commit/005150ed69c540fb0b5323e0f2208608c1204536
> [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
> [3]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
>
> Fixes: ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
I don't think this fixes tag is suitable, the commit you cite in
moby/docker is a year younger than the one in the fixes tag, so it was
correct at the time it was written. I think the fixes tag should just be
removed, since that commit was not wrong. Or am I missing something?
> Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
> ---
> arch/riscv/configs/defconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
> index 12dc8c73a8ac..de85c3ab261e 100644
> --- a/arch/riscv/configs/defconfig
> +++ b/arch/riscv/configs/defconfig
> @@ -9,7 +9,6 @@ CONFIG_CGROUPS=y
> CONFIG_MEMCG=y
> CONFIG_CGROUP_SCHED=y
> CONFIG_CFS_BANDWIDTH=y
> -CONFIG_RT_GROUP_SCHED=y
> CONFIG_CGROUP_PIDS=y
> CONFIG_CGROUP_FREEZER=y
> CONFIG_CGROUP_HUGETLB=y
>
> --
> 2.46.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] riscv: defconfig: drop RT_GROUP_SCHED=y
2024-09-09 11:53 ` Conor Dooley
@ 2024-09-09 12:14 ` Celeste Liu
2024-09-09 13:06 ` Conor Dooley
2024-09-09 13:14 ` Heinrich Schuchardt
0 siblings, 2 replies; 11+ messages in thread
From: Celeste Liu @ 2024-09-09 12:14 UTC (permalink / raw)
To: Conor Dooley
Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter,
Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra
On 2024-09-09 19:53, Conor Dooley wrote:
> On Fri, Aug 23, 2024 at 01:43:26AM +0800, Celeste Liu wrote:
>> Commit ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
>> introduced it because of Docker, but Docker has removed this requirement
>> since [1] (2023-04-19).
>>
>> For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
>> needs an RT budget assigned, otherwise the processes in it will not be able to
>> get RT at all. The problem with RT group scheduling is that it requires the
>> budget assigned but there's no way we could assign a default budget, since the
>> values to assign are both upper and lower time limits, are absolute, and need to
>> be sum up to < 1 for each individal cgroup. That means we cannot really come up
>> with values that would work by default in the general case.[2]
>>
>> For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
>> can only be enabled when all RT processes are in the root cgroup. But it will
>> lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
>>
>> Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
>> support it.[3]
>>
>> [1]: https://github.com/moby/moby/commit/005150ed69c540fb0b5323e0f2208608c1204536
>> [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
>> [3]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
>>
>> Fixes: ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
>
> I don't think this fixes tag is suitable, the commit you cite in
> moby/docker is a year younger than the one in the fixes tag, so it was
> correct at the time it was written. I think the fixes tag should just be
> removed, since that commit was not wrong. Or am I missing something?
The Docker commit I cited introduce the fix, not the bug. So it should be later
than commit in fixes tag, otherwise Heinrich Schuchardt won't pick the wrong
config from upstream.
Timeline is:
1) 2015-06-19 Qiang Huang introduce RT_GROUP_SCHED check in Docker.[1]
2) 2022-06-08 Heinrich Schuchardt pick this to defconfig in commit
in fixes tag.
3) 2023-04-19 Florian Schmaus remove this requirement from Docker in
commit I cited.
[1]: https://github.com/moby/moby/commit/fb85a99f5899df7475ba6b1ac4b2e1d32974eca2
>
>> Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
>> ---
>> arch/riscv/configs/defconfig | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
>> index 12dc8c73a8ac..de85c3ab261e 100644
>> --- a/arch/riscv/configs/defconfig
>> +++ b/arch/riscv/configs/defconfig
>> @@ -9,7 +9,6 @@ CONFIG_CGROUPS=y
>> CONFIG_MEMCG=y
>> CONFIG_CGROUP_SCHED=y
>> CONFIG_CFS_BANDWIDTH=y
>> -CONFIG_RT_GROUP_SCHED=y
>> CONFIG_CGROUP_PIDS=y
>> CONFIG_CGROUP_FREEZER=y
>> CONFIG_CGROUP_HUGETLB=y
>>
>> --
>> 2.46.0
>>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] riscv: defconfig: drop RT_GROUP_SCHED=y
2024-09-09 12:14 ` Celeste Liu
@ 2024-09-09 13:06 ` Conor Dooley
2024-09-09 13:14 ` Celeste Liu
2024-09-10 12:57 ` Celeste Liu
2024-09-09 13:14 ` Heinrich Schuchardt
1 sibling, 2 replies; 11+ messages in thread
From: Conor Dooley @ 2024-09-09 13:06 UTC (permalink / raw)
To: Celeste Liu
Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter,
Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra
[-- Attachment #1: Type: text/plain, Size: 2726 bytes --]
On Mon, Sep 09, 2024 at 08:14:16PM +0800, Celeste Liu wrote:
> On 2024-09-09 19:53, Conor Dooley wrote:
>
> > On Fri, Aug 23, 2024 at 01:43:26AM +0800, Celeste Liu wrote:
> >> Commit ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
> >> introduced it because of Docker, but Docker has removed this requirement
> >> since [1] (2023-04-19).
> >>
> >> For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
> >> needs an RT budget assigned, otherwise the processes in it will not be able to
> >> get RT at all. The problem with RT group scheduling is that it requires the
> >> budget assigned but there's no way we could assign a default budget, since the
> >> values to assign are both upper and lower time limits, are absolute, and need to
> >> be sum up to < 1 for each individal cgroup. That means we cannot really come up
> >> with values that would work by default in the general case.[2]
> >>
> >> For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
> >> can only be enabled when all RT processes are in the root cgroup. But it will
> >> lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
> >>
> >> Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
> >> support it.[3]
> >>
> >> [1]: https://github.com/moby/moby/commit/005150ed69c540fb0b5323e0f2208608c1204536
> >> [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
> >> [3]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
> >>
> >> Fixes: ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
> >
> > I don't think this fixes tag is suitable, the commit you cite in
> > moby/docker is a year younger than the one in the fixes tag, so it was
> > correct at the time it was written. I think the fixes tag should just be
> > removed, since that commit was not wrong. Or am I missing something?
>
> The Docker commit I cited introduce the fix, not the bug. So it should be later
> than commit in fixes tag, otherwise Heinrich Schuchardt won't pick the wrong
> config from upstream.
>
> Timeline is:
> 1) 2015-06-19 Qiang Huang introduce RT_GROUP_SCHED check in Docker.[1]
> 2) 2022-06-08 Heinrich Schuchardt pick this to defconfig in commit
> in fixes tag.
> 3) 2023-04-19 Florian Schmaus remove this requirement from Docker in
> commit I cited.
Yes, this is the way I understood things to be. IOW, when Heinrich wrote
ba6cfef057e1 ("riscv: enable Docker requirements in defconfig"), it was
a requirement for docker. The requirement later being removed doesn't
make his patch incorrect, which is why I don't think this is a fix.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] riscv: defconfig: drop RT_GROUP_SCHED=y
2024-09-09 13:06 ` Conor Dooley
@ 2024-09-09 13:14 ` Celeste Liu
2024-09-10 12:57 ` Celeste Liu
1 sibling, 0 replies; 11+ messages in thread
From: Celeste Liu @ 2024-09-09 13:14 UTC (permalink / raw)
To: Conor Dooley
Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Heinrich Schuchardt, Huacai Chen, WANG Xuerui, Yoshinori Sato,
Rich Felker, John Paul Adrian Glaubitz, Russell King,
Florian Fainelli, Broadcom internal kernel review list, Ray Jui,
Scott Branden, Tony Lindgren, Thierry Reding, Jonathan Hunter,
Palmer Dabbelt, linux-riscv, linux-kernel, loongarch, linux-sh,
linux-arm-kernel, linux-rpi-kernel, linux-omap, linux-tegra
On 2024-09-09 21:06, Conor Dooley wrote:
> On Mon, Sep 09, 2024 at 08:14:16PM +0800, Celeste Liu wrote:
>> On 2024-09-09 19:53, Conor Dooley wrote:
>>
>>> On Fri, Aug 23, 2024 at 01:43:26AM +0800, Celeste Liu wrote:
>>>> Commit ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
>>>> introduced it because of Docker, but Docker has removed this requirement
>>>> since [1] (2023-04-19).
>>>>
>>>> For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
>>>> needs an RT budget assigned, otherwise the processes in it will not be able to
>>>> get RT at all. The problem with RT group scheduling is that it requires the
>>>> budget assigned but there's no way we could assign a default budget, since the
>>>> values to assign are both upper and lower time limits, are absolute, and need to
>>>> be sum up to < 1 for each individal cgroup. That means we cannot really come up
>>>> with values that would work by default in the general case.[2]
>>>>
>>>> For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
>>>> can only be enabled when all RT processes are in the root cgroup. But it will
>>>> lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
>>>>
>>>> Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
>>>> support it.[3]
>>>>
>>>> [1]: https://github.com/moby/moby/commit/005150ed69c540fb0b5323e0f2208608c1204536
>>>> [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
>>>> [3]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
>>>>
>>>> Fixes: ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
>>>
>>> I don't think this fixes tag is suitable, the commit you cite in
>>> moby/docker is a year younger than the one in the fixes tag, so it was
>>> correct at the time it was written. I think the fixes tag should just be
>>> removed, since that commit was not wrong. Or am I missing something?
>>
>> The Docker commit I cited introduce the fix, not the bug. So it should be later
>> than commit in fixes tag, otherwise Heinrich Schuchardt won't pick the wrong
>> config from upstream.
>>
>> Timeline is:
>> 1) 2015-06-19 Qiang Huang introduce RT_GROUP_SCHED check in Docker.[1]
>> 2) 2022-06-08 Heinrich Schuchardt pick this to defconfig in commit
>> in fixes tag.
>> 3) 2023-04-19 Florian Schmaus remove this requirement from Docker in
>> commit I cited.
>
> Yes, this is the way I understood things to be. IOW, when Heinrich wrote
> ba6cfef057e1 ("riscv: enable Docker requirements in defconfig"), it was
> a requirement for docker. The requirement later being removed doesn't
> make his patch incorrect, which is why I don't think this is a fix.
Oh, you are right. I will send v3 later.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] riscv: defconfig: drop RT_GROUP_SCHED=y
2024-09-09 12:14 ` Celeste Liu
2024-09-09 13:06 ` Conor Dooley
@ 2024-09-09 13:14 ` Heinrich Schuchardt
1 sibling, 0 replies; 11+ messages in thread
From: Heinrich Schuchardt @ 2024-09-09 13:14 UTC (permalink / raw)
To: Celeste Liu, Conor Dooley
Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, Anup Patel,
Huacai Chen, WANG Xuerui, Yoshinori Sato, Rich Felker,
John Paul Adrian Glaubitz, Russell King, Florian Fainelli,
Broadcom internal kernel review list, Ray Jui, Scott Branden,
Tony Lindgren, Thierry Reding, Jonathan Hunter, Palmer Dabbelt,
linux-riscv, linux-kernel, loongarch, linux-sh, linux-arm-kernel,
linux-rpi-kernel, linux-omap, linux-tegra
On 09.09.24 14:14, Celeste Liu wrote:
> On 2024-09-09 19:53, Conor Dooley wrote:
>
>> On Fri, Aug 23, 2024 at 01:43:26AM +0800, Celeste Liu wrote:
>>> Commit ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
>>> introduced it because of Docker, but Docker has removed this requirement
>>> since [1] (2023-04-19).
>>>
>>> For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
>>> needs an RT budget assigned, otherwise the processes in it will not be able to
>>> get RT at all. The problem with RT group scheduling is that it requires the
>>> budget assigned but there's no way we could assign a default budget, since the
>>> values to assign are both upper and lower time limits, are absolute, and need to
>>> be sum up to < 1 for each individal cgroup. That means we cannot really come up
>>> with values that would work by default in the general case.[2]
>>>
>>> For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
>>> can only be enabled when all RT processes are in the root cgroup. But it will
>>> lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
>>>
>>> Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
>>> support it.[3]
>>>
>>> [1]: https://github.com/moby/moby/commit/005150ed69c540fb0b5323e0f2208608c1204536
>>> [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
>>> [3]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
>>>
>>> Fixes: ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
>>
>> I don't think this fixes tag is suitable, the commit you cite in
>> moby/docker is a year younger than the one in the fixes tag, so it was
>> correct at the time it was written. I think the fixes tag should just be
>> removed, since that commit was not wrong. Or am I missing something?
>
> The Docker commit I cited introduce the fix, not the bug. So it should be later
> than commit in fixes tag, otherwise Heinrich Schuchardt won't pick the wrong
> config from upstream.
>
> Timeline is:
> 1) 2015-06-19 Qiang Huang introduce RT_GROUP_SCHED check in Docker.[1]
> 2) 2022-06-08 Heinrich Schuchardt pick this to defconfig in commit
> in fixes tag.
> 3) 2023-04-19 Florian Schmaus remove this requirement from Docker in
> commit I cited.
>
> [1]: https://github.com/moby/moby/commit/fb85a99f5899df7475ba6b1ac4b2e1d32974eca2
I experience no problems running Docker without CONFIG_RT_GROUP_SCHED on
Ubuntu 24.04.
The Docker patch is only for contrib/check-config.sh. Probably Docker at
the time of my patch would have worked without CONFIG_RT_GROUP_SCHED,
too. I have no issue with the Fixes: tag in this patch.
Acked-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
>
>>
>>> Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
>>> ---
>>> arch/riscv/configs/defconfig | 1 -
>>> 1 file changed, 1 deletion(-)
>>>
>>> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
>>> index 12dc8c73a8ac..de85c3ab261e 100644
>>> --- a/arch/riscv/configs/defconfig
>>> +++ b/arch/riscv/configs/defconfig
>>> @@ -9,7 +9,6 @@ CONFIG_CGROUPS=y
>>> CONFIG_MEMCG=y
>>> CONFIG_CGROUP_SCHED=y
>>> CONFIG_CFS_BANDWIDTH=y
>>> -CONFIG_RT_GROUP_SCHED=y
>>> CONFIG_CGROUP_PIDS=y
>>> CONFIG_CGROUP_FREEZER=y
>>> CONFIG_CGROUP_HUGETLB=y
>>>
>>> --
>>> 2.46.0
>>>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] riscv: defconfig: drop RT_GROUP_SCHED=y
2024-09-09 13:06 ` Conor Dooley
2024-09-09 13:14 ` Celeste Liu
@ 2024-09-10 12:57 ` Celeste Liu
1 sibling, 0 replies; 11+ messages in thread
From: Celeste Liu @ 2024-09-10 12:57 UTC (permalink / raw)
To: conor.dooley
Cc: anup, aou, bcm-kernel-feedback-list, chenhuacai, coelacanthushex,
dalias, florian.fainelli, glaubitz, guoren, heinrich.schuchardt,
jonathanh, kernel, linux-arm-kernel, linux-kernel, linux-omap,
linux-riscv, linux-rpi-kernel, linux-sh, linux-tegra, linux,
loongarch, palmer, palmer, paul.walmsley, rjui, sbranden,
thierry.reding, tony, ysato, Celeste Liu
On 2024-09-09 20:16, Conor Dooley wrote:
> On Mon, Sep 09, 2024 at 08:14:16PM +0800, Celeste Liu wrote:
> > On 2024-09-09 19:53, Conor Dooley wrote:
> >
> > > On Fri, Aug 23, 2024 at 01:43:26AM +0800, Celeste Liu wrote:
> > >> Commit ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
> > >> introduced it because of Docker, but Docker has removed this requirement
> > >> since [1] (2023-04-19).
> > >>
> > >> For cgroup v1, if turned on, and there's any cgroup in the "cpu" hierarchy it
> > >> needs an RT budget assigned, otherwise the processes in it will not be able to
> > >> get RT at all. The problem with RT group scheduling is that it requires the
> > >> budget assigned but there's no way we could assign a default budget, since the
> > >> values to assign are both upper and lower time limits, are absolute, and need to
> > >> be sum up to < 1 for each individal cgroup. That means we cannot really come up
> > >> with values that would work by default in the general case.[2]
> > >>
> > >> For cgroup v2, it's almost unusable as well. If it turned on, the cpu controller
> > >> can only be enabled when all RT processes are in the root cgroup. But it will
> > >> lose the benefits of cgroup v2 if all RT process were placed in the same cgroup.
> > >>
> > >> Red Hat, Gentoo, Arch Linux and Debian all disable it. systemd also doesn't
> > >> support it.[3]
> > >>
> > >> [1]: https://github.com/moby/moby/commit/005150ed69c540fb0b5323e0f2208608c1204536
> > >> [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1229700
> > >> [3]: https://github.com/systemd/systemd/issues/13781#issuecomment-549164383
> > >>
> > >> Fixes: ba6cfef057e1 ("riscv: enable Docker requirements in defconfig")
> > >
> > > I don't think this fixes tag is suitable, the commit you cite in
> > > moby/docker is a year younger than the one in the fixes tag, so it was
> > > correct at the time it was written. I think the fixes tag should just be
> > > removed, since that commit was not wrong. Or am I missing something?
> >
> > The Docker commit I cited introduce the fix, not the bug. So it should be later
> > than commit in fixes tag, otherwise Heinrich Schuchardt won't pick the wrong
> > config from upstream.
> >
> > Timeline is:
> > 1) 2015-06-19 Qiang Huang introduce RT_GROUP_SCHED check in Docker.[1]
> > 2) 2022-06-08 Heinrich Schuchardt pick this to defconfig in commit
> > in fixes tag.
> > 3) 2023-04-19 Florian Schmaus remove this requirement from Docker in
> > commit I cited.
>
> Yes, this is the way I understood things to be. IOW, when Heinrich wrote
> ba6cfef057e1 ("riscv: enable Docker requirements in defconfig"), it was
> a requirement for docker. The requirement later being removed doesn't
> make his patch incorrect, which is why I don't think this is a fix.
v3 has been sent.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-09-10 12:58 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-22 17:43 [PATCH v2 0/4] defconfig: drop RT_GROUP_SCHED=y Celeste Liu
2024-08-22 17:43 ` [PATCH v2 1/4] riscv: " Celeste Liu
2024-09-09 11:53 ` Conor Dooley
2024-09-09 12:14 ` Celeste Liu
2024-09-09 13:06 ` Conor Dooley
2024-09-09 13:14 ` Celeste Liu
2024-09-10 12:57 ` Celeste Liu
2024-09-09 13:14 ` Heinrich Schuchardt
2024-08-22 17:43 ` [PATCH v2 2/4] loongarch: " Celeste Liu
2024-08-22 17:43 ` [PATCH v2 3/4] sh: defconfig: drop RT_GROUP_SCHED=y from sdk7786/urquell Celeste Liu
2024-08-22 17:43 ` [PATCH v2 4/4] arm: defconfig: drop RT_GROUP_SCHED=y from bcm2835/tegra/omap2plus Celeste Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).