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 13:39:13 +0200 [thread overview]
Message-ID: <20090616113913.GJ5139@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);
> }
>
> if (dma_debug_fs_init() != 0) {
Ok, cool. I would apply it but I don't know enough about lockdep
internals to write a meaningful commit message. Can you please provide
one so I can commit this?
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 11:39 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 [this message]
2009-06-16 12:11 ` Ingo Molnar
2009-06-16 15:24 ` Joerg Roedel
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=20090616113913.GJ5139@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.