[Sheepdog] [PATCH 0/5] stop grabbing vnode_info references outside the main thread

Christoph Hellwig hch at infradead.org
Wed May 9 19:31:47 CEST 2012


On Wed, May 09, 2012 at 09:49:29PM +0800, Liu Yuan wrote:
> I am more fond of binary tuple of get/put, instead of triple tuple API.
> With RCU, we could get this finer API back and it's also a very simple
> solution.

You need the sample API with RCU if you want to do the simples thing
in the places grabbing the additional references - the places that
potentially grab the first reference need to check that it's not dead
and only in the RCU grace period at that point, while others don't.
Compare to iget/igrab and dget/dref in the Linux kernel.

> >> > 3) need to pass vnode_info everywhere and change internal
> >> > API a lot.
> > It's not all that much of a change.  In fact I'd like to do bigger
> > changes eventually to pass proper objects down the cluster OP path
> > instead of the current high number of individually passed arguments.
> > 
> 
> 
> Okay, it's better for us to see the whole picture. Actually, I am most
> concerned of extra argument to pass vnode_info everywhere, If we can get
> a more reasonable argument structure, I'll calm down about it.

Better calling conventions are just something spinning in my head right
now, I'd rather get this old race fixed and other concurrency issues
like the pending list sorted out before doing cleanup passes like that.



More information about the sheepdog mailing list