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 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

\
 
 \ /
  Last update: 2017-09-06 14:57    [W:0.091 / U:2.648 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site