[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