kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #33641
[Bug 1259645] [NEW] cgroup cpu capping via cpu.cfs_quota can cause tasks to not be scheduled on the runque
Public bug reported:
SRU Justification:
Impact:
When using cgroup's cpu capping features via the cpu.cfs_quota setting a race condition can occur such that a task has its timer disabled and no longer gets scheduled on the runqueue.
This has been observed when setting cpu capping on VMs started with libvirt.
Fix:
Commit f9f9ffc237dd924f048204e8799da74f9ecf40cf upstream fixes this issue. It fixes throttle_cfs_rq by checking if the timer is not active. If it isn't then it calls __start_cfs_bandwidth which will put the task back on the runqueue.
Testcase:
>From the patch: make a run/sleep task in a cgroup, loop switching the cgroup
between 1ms/100ms quota and unlimited, checking for timer_active=0 and
throttled=1 as a failure. With the throttle_cfs_rq() change commented out
this fails, with the full patch it passes.
** Affects: linux (Ubuntu)
Importance: Medium
Assignee: Chris J Arges (arges)
Status: In Progress
** Tags: bot-stop-nagging
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1259645
Title:
cgroup cpu capping via cpu.cfs_quota can cause tasks to not be
scheduled on the runque
Status in “linux” package in Ubuntu:
In Progress
Bug description:
SRU Justification:
Impact:
When using cgroup's cpu capping features via the cpu.cfs_quota setting a race condition can occur such that a task has its timer disabled and no longer gets scheduled on the runqueue.
This has been observed when setting cpu capping on VMs started with libvirt.
Fix:
Commit f9f9ffc237dd924f048204e8799da74f9ecf40cf upstream fixes this issue. It fixes throttle_cfs_rq by checking if the timer is not active. If it isn't then it calls __start_cfs_bandwidth which will put the task back on the runqueue.
Testcase:
From the patch: make a run/sleep task in a cgroup, loop switching the cgroup
between 1ms/100ms quota and unlimited, checking for timer_active=0 and
throttled=1 as a failure. With the throttle_cfs_rq() change commented out
this fails, with the full patch it passes.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1259645/+subscriptions
Follow ups
References