From: Qais Yousef <qais.yousef@arm.com>
To: Tejun Heo <tj@kernel.org>
Cc: Xuewen Yan <xuewen.yan@unisoc.com>,
rafael@kernel.org, viresh.kumar@linaro.org, mingo@redhat.com,
peterz@infradead.org, juri.lelli@redhat.com,
vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
bristot@redhat.com, linux-kernel@vger.kernel.org,
ke.wang@unisoc.com, xuewyan@foxmail.com,
linux-pm@vger.kernel.org, Waiman Long <longman@redhat.com>
Subject: Re: [PATCH] sched/schedutil: Fix deadlock between cpuset and cpu hotplug when using schedutil
Date: Tue, 12 Jul 2022 18:14:07 +0100 [thread overview]
Message-ID: <20220712171407.ns67p7nygltydupx@wubuntu> (raw)
In-Reply-To: <Ys2duuPDNq/q+oOz@slm.duckdns.org>
On 07/12/22 06:13, Tejun Heo wrote:
> On Tue, Jul 12, 2022 at 01:57:02PM +0100, Qais Yousef wrote:
> > Is there a lot of subsystems beside cpuset that needs the cpus_read_lock()?
> > A quick grep tells me it's the only one.
> >
> > Can't we instead use cpus_read_trylock() in cpuset_can_attach() so that we
> > either hold the lock successfully then before we go ahead and call
> > cpuset_attach(), or bail out and cancel the whole attach operation which should
> > unlock the threadgroup_rwsem() lock?
>
> But now we're failing user-initiated operations randomly. I have a hard time
True. That might appear more random than necessary. It looked neat and
I thought since hotplug operations aren't that common and users must be
prepared for failures for other reasons, it might be okay.
> seeing that as an acceptable solution. The only thing we can do, I think, is
> establishing a locking order between the two locks by either nesting
That might be enough if no other paths can exist which would hold them in
reverse order again. It would be more robust to either hold them both or wait
until we can. Then potential ordering problems can't happen again, because of
this path at least.
> threadgroup_rwsem under cpus_read_lock or disallowing thread creation during
> hotplug operations.
I think that's what Xuewen tried to do in the proposed patch. But it fixes it
for a specific user. If we go with that we'll need nuts and bolts to help warn
when other users do that.
Thanks
--
Qais Yousef
next prev parent reply other threads:[~2022-07-12 17:14 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-05 12:37 Xuewen Yan
2022-07-11 7:21 ` Xuewen Yan
2022-07-11 7:32 ` Lukasz Luba
2022-07-11 7:43 ` Xuewen Yan
2022-07-11 7:47 ` Viresh Kumar
2022-07-11 7:50 ` Lukasz Luba
2022-07-11 17:46 ` Qais Yousef
2022-07-11 20:58 ` Tejun Heo
2022-07-11 21:11 ` Steven Rostedt
2022-07-12 5:42 ` Xuewen Yan
2022-07-12 5:57 ` Xuewen Yan
2022-07-13 3:02 ` Waiman Long
2022-07-12 12:57 ` Qais Yousef
2022-07-12 16:13 ` Tejun Heo
2022-07-12 17:14 ` Qais Yousef [this message]
2022-07-27 22:01 ` Peter Zijlstra
2022-07-27 22:05 ` Tejun Heo
2022-07-13 2:49 ` Waiman Long
2022-07-13 3:00 ` Tejun Heo
2022-07-20 7:45 ` Xuewen Yan
2022-07-27 20:09 ` Tejun Heo
2022-07-29 7:33 ` Xuewen Yan
2022-07-29 8:39 ` Qais Yousef
2022-07-29 19:59 ` Tejun Heo
2022-08-09 2:02 ` Xuewen Yan
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=20220712171407.ns67p7nygltydupx@wubuntu \
--to=qais.yousef@arm.com \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=ke.wang@unisoc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.org \
--cc=tj@kernel.org \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
--cc=xuewen.yan@unisoc.com \
--cc=xuewyan@foxmail.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
all inboxes | Powered by JetHome®