Re: [PATCH] cgroup/cpuset: remove circular dependency deadlock
From: Prateek Sood <hidden>
Date: 2017-09-06 14:24:10
Also in:
lkml
On 09/06/2017 06:26 PM, Waiman Long wrote:
On 09/06/2017 07:48 AM, Prateek Sood wrote:quoted
Remove circular dependency deadlock in a scenario where hotplug of CPU is being done while there is updation in cgroup and cpuset triggered from userspace. Example scenario: kworker/0:0 => kthreadd => init:729 => init:1 => kworker/0:0 kworker/0:0 - lock(cpuhotplug.mutex) [held] flush(work) [no high prio workqueue available on CPU] wait_for_completion() kthreadd - percpu_down_read(cgroup_threadgroup_rwsem) [waiting] init:729 - percpu_down_write(cgroup_threadgroup_rwsem) [held] lock(cpuset_mutex) [waiting] init:1 - lock(cpuset_mutex) [held] lock(cpuhotplug.mutex) [waiting] Eliminate this dependecy by reordering locking of cpuset_mutex and cpuhotplug.mutex in following order 1. Acquire cpuhotplug.mutex 2. Acquire cpuset_mutex Signed-off-by: Prateek Sood <redacted>Is this patch for the latest upstream kernel or 4.4? There is no cpuhotplug.mutex anymore in upstream kernel. It is a per-cpu rwsem cpu_hotplug_lock. Cheers, Longman
Thanks for inputs, I will check latest kernel for details Regards Prateek -- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc., is a member of Code Aurora Forum, a Linux Foundation Collaborative Project