[Cluster-devel] GFS2: Use new workqueue scheme (try #2)

Steven Whitehouse swhiteho at redhat.com
Thu Sep 9 14:59:26 UTC 2010


Hi,

On Thu, 2010-09-09 at 16:48 +0200, Tejun Heo wrote:
> Hello,
> 
> On 09/09/2010 04:44 PM, Steven Whitehouse wrote:
> > Incidentally, this updated patch seems to run the postmark
> > test even faster than the previous version :-)
> 
> Ah, cool. :-)
> 
> Just one more thing.
> 
> > -	gfs2_delete_workqueue = create_workqueue("delete_workqueue");
> > +	gfs2_delete_workqueue = alloc_workqueue("delete_workqueue", WQ_RESCUER |
> > +						WQ_NON_REENTRANT |
> > +						WQ_FREEZEABLE, 0);
> 
> The original create_workqueue() is (cross-CPU) reentrant, so adding
> WQ_NON_REENTRANT there is adding one more restriction.  Is this
> intentional?
> 
The original code relied upon the submission code to prevent this from
happening. It seemed like a good idea to declare this explicitly, but
again it is not actually required, as such.

> >  	error = -ENOMEM;
> >  	gfs_recovery_wq = alloc_workqueue("gfs_recovery",
> > -					  WQ_NON_REENTRANT | WQ_RESCUER, 0);
> > +					  WQ_NON_REENTRANT | WQ_RESCUER |
> > +					  WQ_FREEZEABLE, 0);
> 
> Looks like patch wasn't generated on a clean tree.  The same question
> too.  If it worked fine w/ create_workqueue() before, you don't need
> NON_REENTRANT.
> 
> Thanks.
> 
And the same here. The tree I'm using is my -nmw GFS2 tree since that is
where I'd intended to queue the resulting patch,

Steve.





More information about the Cluster-devel mailing list