• P
    block: Use u64_stats_init() to initialize seqcounts · 90d3839b
    Peter Zijlstra 提交于
    Now that seqcounts are lockdep enabled objects, we need to explicitly
    initialize runtime allocated seqcounts so that lockdep can track them.
    
    Without this patch, Fengguang was seeing:
    
      [    4.127282] INFO: trying to register non-static key.
      [    4.128027] the code is fine but needs lockdep annotation.
      [    4.128027] turning off the locking correctness validator.
      [    4.128027] CPU: 0 PID: 96 Comm: kworker/u4:1 Not tainted 3.12.0-next-20131108-10601-gbad570d #2
      [    4.128027] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      [    ...     ]
      [    4.128027] Call Trace:
      [    4.128027]  [<7908e744>] ? console_unlock+0x353/0x380
      [    4.128027]  [<79dc7cf2>] dump_stack+0x48/0x60
      [    4.128027]  [<7908953e>] __lock_acquire.isra.26+0x7e3/0xceb
      [    4.128027]  [<7908a1c5>] lock_acquire+0x71/0x9a
      [    4.128027]  [<794079aa>] ? blk_throtl_bio+0x1c3/0x485
      [    4.128027]  [<7940658b>] throtl_update_dispatch_stats+0x7c/0x153
      [    4.128027]  [<794079aa>] ? blk_throtl_bio+0x1c3/0x485
      [    4.128027]  [<794079aa>] blk_throtl_bio+0x1c3/0x485
      ...
    
    Use u64_stats_init() for all affected data structures, which initializes
    the seqcount.
    Reported-and-Tested-by: NFengguang Wu <fengguang.wu@intel.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
    [ Folded in another fix from the mailing list as well as a fix to that fix. Tweaked commit message. ]
    Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
    Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1384314134-6895-1-git-send-email-john.stultz@linaro.org
    [ So I actually think that the two SOBs from PeterZ are the right depiction of the patch route. ]
    Signed-off-by: NIngo Molnar <mingo@kernel.org>
    90d3839b
blk-throttle.c 46.0 KB