From: Laura Abbott <lauraa@codeaurora.org>
To: mgorman@suse.de, m.szyprowski@samsung.com, mina86@mina86.com
Cc: linux-mm@kvack.org, Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
linux-kernel@vger.kernel.org, pratikp@codeaurora.org
Subject: Deadlock with CMA and CPU hotplug
Date: Wed, 22 Oct 2014 09:57:52 -0700 [thread overview]
Message-ID: <5447E210.8020902@codeaurora.org> (raw)
Hi,
We've run into a AB/BA deadlock situation involving a driver lock and
the CPU hotplug lock on a 3.10 based kernel. The situation is this:
CPU 0 CPU 1
----- ----
Start CPU hotplug
mutex_lock(&cpu_hotplug.lock)
Run CPU hotplug notifier
data for driver comes in
mutex_lock(&driver_lock)
driver calls dma_alloc_coherent
alloc_contig_range
lru_add_drain_all
get_online_cpus()
mutex_lock(&cpu_hotplug.lock)
Driver hotplug notifier runs
mutex_lock(&driver_lock)
The driver itself is out of tree right now[1] and we're looking at
ways to rework the driver. The best option for rework right now
though might result in some performance penalties. The size that's
being allocated can't easily be converted to an atomic allocation either
It seems like this might be a limitation of where CMA/
dma_alloc_coherent could potentially be used and make drivers
unnecessarily aware of CPU hotplug locking.
Does this seem like an actual problem that needs to be fixed or
is trying to use CMA in a CPU hotplug notifier path just asking
for trouble?
Thanks,
Laura
[1] For reference, the driver is a version of
https://lkml.org/lkml/2014/10/7/495 although that particular
posted version allocates memory at probe instead of runtime
and probably doesn't have the deadlock.
--
Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2014-10-22 16:58 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-22 16:57 Laura Abbott [this message]
2014-10-28 9:49 ` Marek Szyprowski
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=5447E210.8020902@codeaurora.org \
--to=lauraa@codeaurora.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=m.szyprowski@samsung.com \
--cc=mgorman@suse.de \
--cc=mina86@mina86.com \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=pratikp@codeaurora.org \
/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