From: Joerg Roedel <joerg.roedel@amd.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Steven Rostedt <rostedt@goodmis.org>,
Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: bug in tty ldisc and friends
Date: Tue, 16 Jun 2009 17:24:21 +0200 [thread overview]
Message-ID: <20090616152421.GM5139@amd.com> (raw)
In-Reply-To: <20090616103606.GA3497@elte.hu>
On Tue, Jun 16, 2009 at 12:36:06PM +0200, Ingo Molnar wrote:
>
> * Ingo Molnar <mingo@elte.hu> wrote:
>
> > This is something we noticed recently: dma-debug uses a lot of
> > lock classes and thus creates a really large lock-graph, depleting
> > the reserves quickly.
>
> yep, i think dma-debug is the culprit. It has:
>
> #define HASH_SIZE 1024ULL
>
> each hash entry has a separate lock.
>
> But this should be easily to solve: a special lock-class for these
> locks. Patch below (warning: utterly untested!).
>
> (Btw., that SPIN_LOCK_UNLOCKED init method should really be
> deprecated for real.)
>
> Ingo
>
> diff --git a/lib/dma-debug.c b/lib/dma-debug.c
> index 3b93129..012c240 100644
> --- a/lib/dma-debug.c
> +++ b/lib/dma-debug.c
> @@ -62,6 +62,8 @@ struct dma_debug_entry {
> #endif
> };
>
> +static struct lock_class_key hash_bucket_class;
> +
> struct hash_bucket {
> struct list_head list;
> spinlock_t lock;
> @@ -716,7 +718,8 @@ void dma_debug_init(u32 num_entries)
>
> for (i = 0; i < HASH_SIZE; ++i) {
> INIT_LIST_HEAD(&dma_entry_hash[i].list);
> - dma_entry_hash[i].lock = SPIN_LOCK_UNLOCKED;
> + spin_lock_init(&dma_entry_hash[i].lock);
> + lockdep_set_lock_class(&dma_entry_hash[i].lock, &hash_bucket_class);
^^^^^^^^^^^^^^^^^^^^^^
Ok, this function is called lockdep_set_class. Otherwise the test went
fine. I queued the patch.
Joerg
--
| Advanced Micro Devices GmbH
Operating | Karl-Hammerschmidt-Str. 34, 85609 Dornach bei München
System |
Research | Geschäftsführer: Thomas M. McCoy, Giuliano Meroni
Center | Sitz: Dornach, Gemeinde Aschheim, Landkreis München
| Registergericht München, HRB Nr. 43632
next prev parent reply other threads:[~2009-06-16 15:24 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-16 5:45 bug in tty ldisc and friends Steven Rostedt
2009-06-16 8:37 ` Alan Cox
2009-06-16 8:50 ` Ingo Molnar
2009-06-16 8:57 ` Alan Cox
2009-06-16 9:09 ` Ingo Molnar
2009-06-16 10:00 ` Ingo Molnar
2009-06-16 10:04 ` Alan Cox
2009-06-16 10:12 ` Ingo Molnar
2009-06-16 10:25 ` Ingo Molnar
2009-06-16 10:29 ` Ingo Molnar
2009-06-16 10:34 ` Joerg Roedel
2009-06-16 10:45 ` Ingo Molnar
2009-06-16 10:36 ` Ingo Molnar
2009-06-16 11:39 ` Joerg Roedel
2009-06-16 12:11 ` Ingo Molnar
2009-06-16 15:24 ` Joerg Roedel [this message]
2009-06-17 8:32 ` Peter Zijlstra
2009-06-17 14:10 ` Ingo Molnar
2009-06-17 14:28 ` Joerg Roedel
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=20090616152421.GM5139@amd.com \
--to=joerg.roedel@amd.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.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