All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <jaxboe@fusionio.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>,
	"piotr@hosowicz.com" <piotr@hosowicz.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Divyesh Shah <dpshah@google.com>
Subject: Re: blkiocg_update_io_add_stats(): INFO: trying to register  non-static key
Date: Fri, 11 Jun 2010 10:34:44 +0200	[thread overview]
Message-ID: <4C11F524.4090702@fusionio.com> (raw)
In-Reply-To: <1276240527.2077.1467.camel@twins>

On 2010-06-11 09:15, Peter Zijlstra wrote:
> On Wed, 2010-06-02 at 15:04 +0200, Jens Axboe wrote:
>> On Wed, Jun 02 2010, Ingo Molnar wrote:
>>>
>>> btw., there's another warning triggered by the new blk-cgroups stats code:
>>>
>>> sda:INFO: trying to register non-static key.
>>> the code is fine but needs lockdep annotation.
>>> turning off the locking correctness validator.
>>> Pid: 81, comm: async/2 Not tainted 2.6.35-rc1-tip-01073-gd2f7698-dirty #6765
>>> Call Trace:
>>>  [<ffffffff81065d6d>] register_lock_class+0x15f/0x365
>>>  [<ffffffff8105c426>] ? sched_clock_local+0x1d/0x83
>>>  [<ffffffff8105c557>] ? sched_clock_cpu+0xcb/0xd9
>>>  [<ffffffff81067184>] __lock_acquire+0x97/0x481
>>>  [<ffffffff810088d4>] ? native_sched_clock+0x37/0x6d
>>>  [<ffffffff81321b74>] ? blkiocg_update_io_add_stats+0x32/0x12e
>>>  [<ffffffff81067644>] lock_acquire+0xd6/0xfd
>>>  [<ffffffff81321b74>] ? blkiocg_update_io_add_stats+0x32/0x12e
>>>  [<ffffffff81850859>] _raw_spin_lock_irqsave+0x47/0x82
>>>  [<ffffffff81321b74>] ? blkiocg_update_io_add_stats+0x32/0x12e
>>>  [<ffffffff81321b74>] blkiocg_update_io_add_stats+0x32/0x12e
>>
>> So that's blkg->stats_lock - help me out, what is lockdep complaining
>> about? The lock is initialized, what kind of lockdep annotation magic do
>> we need to sprinkle on it?
> 
> It basically says its lock instance isn't properly initialised. Usually
> spin_lock_init() will set lock->dep_map->key, for static locks,
> initialised with __SPIN_LOCK_UNLOCKED() ->key doesn't get set and we use
> the lock's address as key.
> 
> Now lockdep requires the key to be in static storage, so if you try to
> used __SPIN_LOCK_UNLOCKED() on dynamically allocated locks (the most
> common form is using static forms like DEFINE_foo() on stack variables),
> things go bang.
> 
> That said, the block_cgroup.c code seems to use spin_lock_init() so it
> _should_ all work out. Use before init/after free perhaps?

Exactly, I did double check that. But yes, could be a bug where it's
used before being initialized, though it seems to do that when the
struct is allocated. So perhaps user-after-free indeed, but it happened
at boot.

-- 
Jens Axboe


      reply	other threads:[~2010-06-11  8:34 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-24  3:03 BUG: using smp_processor_id() in preemptible [00000000] code: icedove-bin/5449 Piotr Hosowicz
2010-05-24 17:22 ` Piotr Hosowicz
2010-05-25  8:50 ` Peter Zijlstra
2010-05-25  9:42   ` Piotr Hosowicz
2010-05-25  9:45     ` Peter Zijlstra
2010-05-25  9:43   ` Ingo Molnar
2010-05-25  9:47     ` Peter Zijlstra
2010-05-25  9:51       ` Peter Zijlstra
2010-05-25  9:57     ` Piotr Hosowicz
2010-05-25 10:00       ` Peter Zijlstra
2010-05-25 10:05         ` Piotr Hosowicz
2010-05-25 10:29           ` Piotr Hosowicz
2010-05-25 14:13             ` Piotr Hosowicz
2010-05-25 14:34               ` Piotr Hosowicz
2010-05-25 14:36                 ` Peter Zijlstra
2010-05-25 14:48                   ` Piotr Hosowicz
2010-05-25 16:15                     ` Peter Zijlstra
2010-05-25 16:47                       ` Piotr Hosowicz
2010-05-26  2:06                         ` Piotr Hosowicz
2010-05-26  2:51                           ` Piotr Hosowicz
2010-05-25 18:07   ` Divyesh Shah
2010-05-25 18:15     ` Piotr Hosowicz
2010-05-25 21:35     ` Peter Zijlstra
2010-05-26 23:02   ` Andrew Morton
2010-05-27  6:46     ` Peter Zijlstra
2010-05-27  6:51       ` Andrew Morton
     [not found]         ` <1274945751.27810.3765.camel@twins>
     [not found]           ` <20100527113340.d4afb8fc.akpm@linux-foundation.org>
2010-05-28 13:13             ` [PATCH] sched_clock: Provide local_clock() and improve documentation Peter Zijlstra
2010-05-28 13:42               ` Johannes Stezenbach
2010-05-28 15:08                 ` Peter Zijlstra
2010-05-28 14:15               ` Piotr Hosowicz
2010-05-28 14:22                 ` Piotr Hosowicz
2010-05-28 18:11               ` Chad Talbott
2010-05-28 18:22                 ` Peter Zijlstra
2010-06-09 10:13               ` [tip:sched/core] sched_clock: Add local_clock() API " tip-bot for Peter Zijlstra
2010-06-01  6:41   ` BUG: using smp_processor_id() in preemptible [00000000] code: icedove-bin/5449 Ingo Molnar
2010-06-01  6:47     ` Jens Axboe
2010-06-01  6:55       ` Ingo Molnar
2010-06-01  7:53         ` Jens Axboe
2010-06-12  1:54           ` Divyesh Shah
2010-06-12  9:42             ` Peter Zijlstra
2010-06-02 11:16         ` blkiocg_update_io_add_stats(): INFO: trying to register non-static key Ingo Molnar
2010-06-02 13:04           ` Jens Axboe
2010-06-11  1:33             ` Divyesh Shah
2010-06-11  7:15             ` Peter Zijlstra
2010-06-11  8:34               ` Jens Axboe [this message]

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=4C11F524.4090702@fusionio.com \
    --to=jaxboe@fusionio.com \
    --cc=dpshah@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=piotr@hosowicz.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.