Linux CIFS filesystem development
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org,
	tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Subject: [PATCH 0/3] cifs: allocate dedicated cifsiod_workqueue
Date: Fri, 17 Feb 2012 09:31:41 -0500	[thread overview]
Message-ID: <1329489104-7823-1-git-send-email-jlayton@redhat.com> (raw)

As Alan Stern pointed out yesterday, cifs queues most of its workqueue
jobs to the system_nrt_wq. There are a couple of problems with that:

1/ That workqueue isn't freezable. Some workqueue jobs from cifs (like
   oplock breaks) can take quite some time to run since they have to
   kickoff writeback. That can end up making the freezer give up in
   some cases.

2/ We queue the async write completion handler to this codepath. Since
   that can be called in memory reclaim codepaths, we really ought to be
   queueing it to a workqueue with WQ_MEM_RECLAIM set.

This patch fixes this by allocating a new workqueue to which we'll queue
all the cifs jobs. The first two patches in the series do a little
cleanup work in the exit_cifs code, and the last patch adds the new
workqueue and has the callers queue their work to it.

This patchset is probably best suited for 3.4.

Jeff Layton (3):
  cifs: clean up call to cifs_dfs_release_automount_timer()
  cifs: clean up ordering in exit_cifs
  cifs: add new cifsiod_wq workqueue

 fs/cifs/cifsfs.c    |   25 +++++++++++++++++--------
 fs/cifs/cifsglob.h  |    1 +
 fs/cifs/cifsproto.h |    6 ++++++
 fs/cifs/cifssmb.c   |    4 ++--
 fs/cifs/connect.c   |    8 ++++----
 fs/cifs/misc.c      |    2 +-
 6 files changed, 31 insertions(+), 15 deletions(-)

-- 
1.7.7.6

             reply	other threads:[~2012-02-17 14:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-17 14:31 Jeff Layton [this message]
     [not found] ` <1329489104-7823-1-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-02-17 14:31   ` [PATCH 1/3] cifs: clean up call to cifs_dfs_release_automount_timer() Jeff Layton
     [not found]     ` <1329489104-7823-2-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-02-20 11:23       ` Shirish Pargaonkar
2012-02-17 14:31   ` [PATCH 2/3] cifs: clean up ordering in exit_cifs Jeff Layton
     [not found]     ` <1329489104-7823-3-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-02-20 11:24       ` Shirish Pargaonkar
2012-02-17 14:31   ` [PATCH 3/3] cifs: add new cifsiod_wq workqueue Jeff Layton
     [not found]     ` <1329489104-7823-4-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-02-20 11:24       ` Shirish Pargaonkar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1329489104-7823-1-git-send-email-jlayton@redhat.com \
    --to=jlayton-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox