Re: [PATCH 1/2] [RFC v2] seqcount: Add lockdep functionality to seqcount/seqlockstructures

From: John Stultz
Date: Mon Sep 16 2013 - 20:24:08 EST


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.

thanks
-john

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/