lkml.org 
[lkml]   [2010]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: dlm: Use cmwq for send and receive workqueues
On Fri, Nov 12, 2010 at 04:20:35PM +0000, Steven Whitehouse wrote:
> Hi,
>
> On Fri, 2010-11-12 at 11:12 -0500, David Teigland wrote:
> > On Fri, Nov 12, 2010 at 12:12:29PM +0000, Steven Whitehouse wrote:
> > >
> > > So far as I can tell, there is no reason to use a single-threaded
> > > send workqueue for dlm, since it may need to send to several sockets
> > > concurrently. Both workqueues are set to WQ_MEM_RECLAIM to avoid
> > > any possible deadlocks, WQ_HIGHPRI since locking traffic is highly
> > > latency sensitive (and to avoid a priority inversion wrt GFS2's
> > > glock_workqueue) and WQ_FREEZABLE just in case someone needs to do
> > > that (even though with current cluster infrastructure, it doesn't
> > > make sense as the node will most likely land up ejected from the
> > > cluster) in the future.
> >
> > Thanks, I'll want to do some testing with this, but my test machines do
> > not seem to create more than one dlm_recv workqueue thread (prior to this
> > patch). Have you tested in any cases where many threads end up being
> > created? I've noticed while debugging some many-cpu machines a huge
> > number of dlm_recv threads, which is just excessive. Does this patch
> > address that?
> >
> >
> Yes, one of the features of the cmwq is that you land up with only as
> many threads as required. When threads block, new ones are created to
> avoid stalling the workqueue. Workqueues marked with WQ_MEM_RECLAIM
> create a single rescuer thread, otherwise the threads are shared with
> all other users of cmwq,

Thanks, pushed to
git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm.git#next



\
 
 \ /
  Last update: 2010-11-12 21:07    [W:0.226 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site