Messages in this thread | | | Subject | Re: [GIT PULL] dlm fix for 2.6.38 | From | Steven Whitehouse <> | Date | Sat, 12 Feb 2011 15:44:35 +0000 |
| |
Hi,
On Fri, 2011-02-11 at 18:38 -0500, David Teigland wrote: > Linus, > > Please pull this fix for a dlm regression from: > > git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm.git for-linus > > Thanks, > Dave > > Author: David Teigland <teigland@redhat.com> > Date: Fri Feb 11 16:44:31 2011 -0600 > > dlm: use single thread workqueues > > The recent commit to use cmwq for send and recv threads > dcce240ead802d42b1e45ad2fcb2ed4a399cb255 introduced problems, > apparently due to multiple workqueue threads. Single threads > make the problems go away, so return to that until we fully > understand the concurrency issues with multiple threads. > > Signed-off-by: David Teigland <teigland@redhat.com> > > diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c > index 9c64ae9..2d8c87b 100644 > --- a/fs/dlm/lowcomms.c > +++ b/fs/dlm/lowcomms.c > @@ -1468,15 +1468,13 @@ static void work_stop(void) > > static int work_start(void) > { > - recv_workqueue = alloc_workqueue("dlm_recv", WQ_MEM_RECLAIM | > - WQ_HIGHPRI | WQ_FREEZEABLE, 0); > + recv_workqueue = create_singlethread_workqueue("dlm_recv"); > if (!recv_workqueue) { > log_print("can't start dlm_recv"); > return -ENOMEM; > } > > - send_workqueue = alloc_workqueue("dlm_send", WQ_MEM_RECLAIM | > - WQ_HIGHPRI | WQ_FREEZEABLE, 0); > + send_workqueue = create_singlethread_workqueue("dlm_send"); > if (!send_workqueue) { > log_print("can't start dlm_send"); > destroy_workqueue(recv_workqueue); > >
What is the issue here? If there is a problem with the workqueues then we should ask Tejun about it,
Steve.
| |