aboutsummaryrefslogtreecommitdiffstats
path: root/lib/net_utils.c
diff options
context:
space:
mode:
authorYicong Yang <[email protected]>2025-06-27 03:54:20 +0000
committerPeter Zijlstra <[email protected]>2025-08-26 08:46:01 +0000
commit52d15521eb75f9b521744db675bee61025d2fa52 (patch)
tree621231d5c8d3069e9601d6eb461abaeaed18fae5 /lib/net_utils.c
parentsched/deadline: Fix RT task potential starvation when expiry time passed (diff)
downloadkernel-52d15521eb75f9b521744db675bee61025d2fa52.tar.gz
kernel-52d15521eb75f9b521744db675bee61025d2fa52.zip
sched/deadline: Don't count nr_running for dl_server proxy tasks
On CPU offline the kernel stalled with below call trace: INFO: task kworker/0:1:11 blocked for more than 120 seconds. cpuhp hold the cpu hotplug lock endless and stalled vmstat_shepherd. This is because we count nr_running twice on cpuhp enqueuing and failed the wait condition of cpuhp: enqueue_task_fair() // pick cpuhp from idle, rq->nr_running = 0 dl_server_start() [...] add_nr_running() // rq->nr_running = 1 add_nr_running() // rq->nr_running = 2 [switch to cpuhp, waiting on balance_hotplug_wait()] rcuwait_wait_event(rq->nr_running == 1 && ...) // failed, rq->nr_running=2 schedule() // wait again It doesn't make sense to count the dl_server towards runnable tasks, since it runs other tasks. Fixes: 63ba8422f876 ("sched/deadline: Introduce deadline servers") Signed-off-by: Yicong Yang <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'lib/net_utils.c')
0 files changed, 0 insertions, 0 deletions