From: Ingo Molnar <mingo@elte.hu>
To: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Daniel J Blueman <daniel.blueman@gmail.com>
Subject: Re: [git pull] core kernel fixes
Date: Mon, 30 Jun 2008 20:20:38 +0200 [thread overview]
Message-ID: <20080630182038.GA32211@elte.hu> (raw)
In-Reply-To: <19f34abd0806301002o7bdbd3a3y63d4d036ce5c26b0@mail.gmail.com>
* Vegard Nossum <vegard.nossum@gmail.com> wrote:
> On Mon, Jun 30, 2008 at 5:32 PM, Ingo Molnar <mingo@elte.hu> wrote:
> > diff --git a/lib/debugobjects.c b/lib/debugobjects.c
> > index a76a5e1..85b18d7 100644
> > --- a/lib/debugobjects.c
> > +++ b/lib/debugobjects.c
> > @@ -68,6 +68,7 @@ static int fill_pool(void)
> > {
> > gfp_t gfp = GFP_ATOMIC | __GFP_NORETRY | __GFP_NOWARN;
> > struct debug_obj *new;
> > + unsigned long flags;
> >
> > if (likely(obj_pool_free >= ODEBUG_POOL_MIN_LEVEL))
> > return obj_pool_free;
> > @@ -81,10 +82,10 @@ static int fill_pool(void)
> > if (!new)
> > return obj_pool_free;
> >
> > - spin_lock(&pool_lock);
> > + spin_lock_irqsave(&pool_lock, flags);
> > hlist_add_head(&new->node, &obj_pool);
> > obj_pool_free++;
> > - spin_unlock(&pool_lock);
> > + spin_unlock_irqrestore(&pool_lock, flags);
> > }
> > return obj_pool_free;
> > }
> > @@ -110,16 +111,13 @@ static struct debug_obj *lookup_object(void *addr, struct debug_bucket *b)
> > }
> >
> > /*
> > - * Allocate a new object. If the pool is empty and no refill possible,
> > - * switch off the debugger.
> > + * Allocate a new object. If the pool is empty, switch off the debugger.
> > */
> > static struct debug_obj *
> > alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr)
> > {
> > struct debug_obj *obj = NULL;
> > - int retry = 0;
> >
> > -repeat:
> > spin_lock(&pool_lock);
> > if (obj_pool.first) {
> > obj = hlist_entry(obj_pool.first, typeof(*obj), node);
> > @@ -141,9 +139,6 @@ repeat:
> > }
> > spin_unlock(&pool_lock);
> >
> > - if (fill_pool() && !obj && !retry++)
> > - goto repeat;
> > -
> > return obj;
> > }
> >
> > @@ -261,6 +256,8 @@ __debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack)
> > struct debug_obj *obj;
> > unsigned long flags;
> >
> > + fill_pool();
> > +
> > db = get_bucket((unsigned long) addr);
> >
> > spin_lock_irqsave(&db->lock, flags);
> > --
>
> Hm. I have to wonder where this patch came from.
>
> This was my (faulty) patch: http://lkml.org/lkml/2008/6/14/193
> and Daniel J Blueman followed up with this: http://lkml.org/lkml/2008/6/15/27
>
> ..but this one looks different from both. I am guessing the last bits
> were added (or removed?) by Thomas?
>
> I am wondering if the final patch was tested with the reproducible
> test case (if so, by whom?) and whether should be credited to Daniel
> (or Thomas?) instead...
You can use "git log -1 -p --pretty=fuller 50db04dd9c" to see the exact
details of the commit:
----------
| commit 50db04dd9c74178e68a981a7127c37252ffb3242
| Author: Vegard Nossum <vegard.nossum@gmail.com>
| AuthorDate: Sun Jun 15 00:47:36 2008 +0200
| Commit: Thomas Gleixner <tglx@linutronix.de>
| CommitDate: Wed Jun 18 11:09:54 2008 +0200
|
| [...]
|
| [ daniel.blueman@gmail.com: pool_lock needs to be taken irq safe in fill_pool ]
|
| Reported-by: Daniel J Blueman <daniel.blueman@gmail.com>
| Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com>
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
----------
As you can see it from the Commit line, it was committed by Thomas.
The "[ daniel.blueman: pool_lock ... ]" line shows that Thomas - instead
of creating two commits - merged the two fixes into a single commit and
credited Daniel for the irq-safe fix. This is the standard technique to
squash small patches and to make fixes multi-authored.
The patch was tested with our standard tests so it's certainly good in
practice - but i havent specifically tried your testcase (maybe Thomas
has). Can you see any problem with the fix?
Ingo
next prev parent reply other threads:[~2008-06-30 18:21 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-30 15:32 [git pull] core kernel fixes Ingo Molnar
2008-06-30 17:02 ` Vegard Nossum
2008-06-30 18:20 ` Ingo Molnar [this message]
2008-06-30 18:43 ` Vegard Nossum
2008-06-30 19:46 ` Thomas Gleixner
2008-06-30 19:51 ` Vegard Nossum
2008-06-30 19:54 ` Thomas Gleixner
-- strict thread matches above, loose matches on Subject: below --
2012-10-23 10:57 [GIT PULL] " Ingo Molnar
2012-08-03 16:31 Ingo Molnar
2012-08-03 16:55 ` Darren Hart
2012-08-03 17:01 ` Ingo Molnar
2012-08-03 17:24 ` Darren Hart
2012-06-15 18:45 Ingo Molnar
2012-01-26 18:05 Ingo Molnar
2011-08-04 20:45 Ingo Molnar
2011-04-02 10:21 Ingo Molnar
2011-03-25 12:52 Ingo Molnar
2011-01-21 2:11 Ingo Molnar
2011-01-15 15:15 Ingo Molnar
2010-10-05 19:12 Ingo Molnar
2010-10-05 20:15 ` Linus Torvalds
2010-10-05 21:09 ` Paul E. McKenney
2010-10-05 21:45 ` Linus Torvalds
2010-10-05 22:05 ` Paul E. McKenney
2010-10-06 2:56 ` Eric Dumazet
2010-10-06 4:59 ` Paul E. McKenney
2010-10-06 18:20 ` Ingo Molnar
2010-10-06 21:27 ` Paul E. McKenney
2010-10-07 8:11 ` Ingo Molnar
2010-10-07 17:42 ` Paul E. McKenney
2010-09-08 13:04 Ingo Molnar
2010-03-26 14:53 Ingo Molnar
2010-03-13 16:35 Ingo Molnar
2009-12-18 18:52 Ingo Molnar
2009-11-10 17:53 Ingo Molnar
2009-10-23 14:53 Ingo Molnar
2009-10-13 18:29 Ingo Molnar
2009-10-08 19:06 Ingo Molnar
2009-10-08 19:16 ` Linus Torvalds
2009-10-08 19:20 ` Ingo Molnar
2009-09-21 13:13 Ingo Molnar
2009-08-13 18:54 Ingo Molnar
2009-08-09 16:07 Ingo Molnar
2009-08-09 18:41 ` Darren Hart
2009-07-10 16:28 Ingo Molnar
2009-07-10 19:06 ` Linus Torvalds
2009-07-10 19:31 ` Ingo Molnar
2009-07-10 19:52 ` Linus Torvalds
2009-07-10 20:02 ` Ingo Molnar
2009-07-13 14:52 ` Joerg Roedel
2009-06-20 17:30 Ingo Molnar
2009-06-20 18:49 ` Linus Torvalds
2009-06-20 19:01 ` Linus Torvalds
2009-06-20 20:27 ` Ingo Molnar
2009-06-21 17:12 ` Thomas Gleixner
2009-06-21 17:37 ` Linus Torvalds
2009-06-21 17:57 ` Linus Torvalds
2009-06-21 19:26 ` Thomas Gleixner
2009-05-18 14:23 Ingo Molnar
2009-05-18 15:48 ` Linus Torvalds
2009-05-18 19:20 ` Thomas Gleixner
2009-05-19 20:52 ` Linus Torvalds
2009-05-19 21:45 ` Thomas Gleixner
2009-05-19 22:20 ` Darren Hart
2009-05-05 9:33 Ingo Molnar
2009-01-30 23:12 [git pull] " Ingo Molnar
2009-01-26 17:24 Ingo Molnar
2009-01-11 14:36 Ingo Molnar
2008-12-04 19:39 Ingo Molnar
2008-11-29 19:36 Ingo Molnar
2008-11-18 14:14 Ingo Molnar
2008-11-07 16:28 Ingo Molnar
2008-10-30 23:29 Ingo Molnar
2008-10-15 12:50 [git pull] core kernel updates for v2.6.28 Ingo Molnar
2008-10-16 22:32 ` Linus Torvalds
2008-10-17 6:23 ` [git pull] core kernel fixes Ingo Molnar
2008-08-28 11:44 Ingo Molnar
2008-08-18 18:35 Ingo Molnar
2008-07-24 15:13 Ingo Molnar
2008-06-23 19:45 Ingo Molnar
2008-06-19 15:16 Ingo Molnar
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=20080630182038.GA32211@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=daniel.blueman@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vegard.nossum@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 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.