lkml.org 
[lkml]   [2017]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] cgroup/cpuset: remove circular dependency deadlock
From
Date
On 09/06/2017 06:26 PM, Waiman Long wrote:
> On 09/06/2017 07:48 AM, Prateek Sood wrote:
>> 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 <prsood@codeaurora.org>
>
> 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

\
 
 \ /
  Last update: 2017-09-06 16:24    [W:0.038 / U:5.068 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site