OSDN Git Service

ANDROID: sched: Disallow WALT with CFS bandwidth control
authorQuentin Perret <quentin.perret@arm.com>
Thu, 29 Aug 2019 10:31:00 +0000 (11:31 +0100)
committerQuentin Perret <quentin.perret@arm.com>
Mon, 2 Sep 2019 11:00:15 +0000 (11:00 +0000)
The WALT time accounting breaks when CFS tasks are throttled by the CPU
bandwidth control mechanism of the CPU cgroups controller. This can
result in a negative cumulative_runnable_avg, which can then lead to a
kernel panic, and the device crashing.

Although the right fix would be add support for throttled CFS tasks to
WALT, the common kernel is now in stable maintenance mode and will not
get new features which could cause issues for partners downstream.

To work around the issue, make the CFS_BANDWIDTH Kconfig option depend
on SCHED_WALT=n, hence preventing these two things from being enabled
simultaneously. This should not be an issue for most partners (nobody
had noticed the breakage for years), and those who do need the better
fix can apply it in their device kernel.

Bug: 139071966
Bug: 120440300
Change-Id: Ieb3c367ae7893ac93fb5b38c1580dc59151aacce
Signed-off-by: Quentin Perret <quentin.perret@arm.com>
init/Kconfig

index b72e832..369e7c6 100644 (file)
@@ -1132,6 +1132,7 @@ config FAIR_GROUP_SCHED
 config CFS_BANDWIDTH
        bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
        depends on FAIR_GROUP_SCHED
+       depends on !SCHED_WALT
        default n
        help
          This option allows users to define CPU bandwidth rates (limits) for