From: Daniel Jordan <daniel.m.jordan@oracle.com>
To: Peter Zijlstra <peterz@infradead.org>,
Alexey Klimov <aklimov@redhat.com>
Cc: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org,
yury.norov@gmail.com, tglx@linutronix.de, jobaker@redhat.com,
audralmitchel@gmail.com, arnd@arndb.de,
gregkh@linuxfoundation.org, rafael@kernel.org, tj@kernel.org,
lizefan.x@bytedance.com, qais.yousef@arm.com, hannes@cmpxchg.org,
klimov.linux@gmail.com
Subject: Re: [RFC][PATCH] cpu/hotplug: wait for cpuset_hotplug_work to finish on cpu online
Date: Thu, 14 Jan 2021 22:21:25 -0500 [thread overview]
Message-ID: <87im7yc2bu.fsf@oracle.com> (raw)
In-Reply-To: <87k0tritvq.fsf@oracle.com>
Daniel Jordan <daniel.m.jordan@oracle.com> writes:
> Peter Zijlstra <peterz@infradead.org> writes:
>>> The nature of this bug is also described here (with different consequences):
>>> https://lore.kernel.org/lkml/20200211141554.24181-1-qais.yousef@arm.com/
>>
>> Yeah, pesky deadlocks.. someone was going to try again.
>
> I dug up the synchronous patch
>
> https://lore.kernel.org/lkml/1579878449-10164-1-git-send-email-prsood@codeaurora.org/
>
> but surprisingly wasn't able to reproduce the lockdep splat from
>
> https://lore.kernel.org/lkml/F0388D99-84D7-453B-9B6B-EEFF0E7BE4CC@lca.pw/
>
> even though I could hit it a few weeks ago.
oh okay, you need to mount a legacy cpuset hierarchy.
So as the above splat shows, making cpuset_hotplug_workfn() synchronous
means cpu_hotplug_lock (and "cpuhp_state-down") can be acquired before
cgroup_mutex.
But there are at least four cgroup paths that take the locks in the
opposite order. They're all the same, they take cgroup_mutex and then
cpu_hotplug_lock later on to modify one or more static keys.
cpu_hotplug_lock should probably be ahead of cgroup_mutex because the
latter is taken in a hotplug callback, and we should keep the static
branches in cgroup, so the only way out I can think of is moving
cpu_hotplug_lock to just before cgroup_mutex is taken and switching to
_cpuslocked flavors of the static key calls.
lockdep quiets down with that change everywhere, but it puts another big
lock around a lot of cgroup paths. Seems less heavyhanded to go with
this RFC. What do you all think?
Absent further discussion, Alexey, do you plan to post another version?
next prev parent reply other threads:[~2021-01-15 3:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-03 17:14 [RFC][PATCH] cpu/hotplug: wait for cpuset_hotplug_work to finish on cpu online Alexey Klimov
2020-12-07 8:38 ` Peter Zijlstra
2020-12-09 2:40 ` Daniel Jordan
2021-01-15 3:21 ` Daniel Jordan [this message]
2021-01-19 16:52 ` Alexey Klimov
2021-01-21 2:09 ` Daniel Jordan
2020-12-09 2:09 ` Daniel Jordan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87im7yc2bu.fsf@oracle.com \
--to=daniel.m.jordan@oracle.com \
--cc=aklimov@redhat.com \
--cc=arnd@arndb.de \
--cc=audralmitchel@gmail.com \
--cc=cgroups@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hannes@cmpxchg.org \
--cc=jobaker@redhat.com \
--cc=klimov.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan.x@bytedance.com \
--cc=peterz@infradead.org \
--cc=qais.yousef@arm.com \
--cc=rafael@kernel.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=yury.norov@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox