Messages in this thread | | | Date | Tue, 17 Sep 2013 10:28:05 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH 1/2] [RFC v2] seqcount: Add lockdep functionality to seqcount/seqlock structures |
| |
* John Stultz <john.stultz@linaro.org> wrote:
> On 09/13/2013 05:19 PM, John Stultz wrote: > > Currently seqlocks and seqcounts don't support lockdep. > > > > After running across a seqcount related deadlock in the timekeeping > > code, I used a less-refined and more focused varient of this patch > > to narrow down the cause of the issue. > > > > This is a first-pass attempt to properly enable lockdep functionality > > on seqlocks and seqcounts. > > > > Since seqcounts are used in the vdso gettimeofday code, I've provided > > lockdep accessors. > > > > I've also handled one cases where there were nested seqlock writers > > and there may be more edge cases. > > Oof. > > So I just noticed there's a bunch of places in the network code that use > fairly deeply embedded seqcounter: u64_stats_sync. There's almost never > an explicit initialization, as they assume they're zeroed when > allocated, but this causes trouble with the lockdep key initialization. > > I'll have to go through each of these (about 25 cases) and make them > call seqcount_init(), but since I'm heading to plumbers tomorrow I might > not get to it until next week. > > Anyway, let me know if you have any other thoughts on the patches.
Explicit initialization is generally a bonus for readability, debuggability and ease of development, we enforce that for spinlocks as well.
Thanks,
Ingo
| |