[dm-devel] [PATCH] Add a set_era_counter config key to the dm-cache era policy shim
Mears, Morgan
Morgan.Mears at netapp.com
Thu Nov 7 21:24:44 UTC 2013
On Thurs, Nov 07, 2013 at 03:51PM +0000, Joe Thornber wrote:
> On Wed, Nov 06, 2013 at 08:59:38PM +0000, Mears, Morgan wrote:
> > Add the ability to set the era counter maintained by the dm-cache era
> > policy shim to an arbitrary 32-bit value, to allow era rollback after
> > the underlying device is restored from a snapshot.
>
> I wonder if we should pass in the old value, and have the call fail if the old
> value is incorrect. This would allow applications to spot if they were
> competing to set the era. Some thing like:
>
> set_era_counter <old value>:<new value>
Yes, I like this. My inclination is to make the <old value>: portion optional so that the counter value can be forced if desired (for example, to set it to a saved value during a create); objections?
> > + era->era_counter = new_era_counter;
> > + smp_wmb();
>
> Please stop using smp_rmb() and smp_wmb(). Every time I see it used I find
> bugs (and this is no exception). Use higher level locking abstractions (eg, spin
> locks), and only optimise if we have a performance issue.
>
> In general alarm bells ring if you use one of smp_*() without the other. See
> linux/Documentation/memory-barriers.txt for lots of discussion.
Thanks Joe, will fix.
More information about the dm-devel
mailing list