From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Neil Brown <neilb@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
Marc Dietrich <Marc.Dietrich@ap.physik.uni-giessen.de>,
Johannes Berg <johannes@sipsolutions.net>,
nfs@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: [NFS] 2.6.23-rc1-mm2
Date: Tue, 07 Aug 2007 18:05:14 -0400 [thread overview]
Message-ID: <1186524314.6625.29.camel@heimdal.trondhjem.org> (raw)
In-Reply-To: <20070807213749.GA461@tv-sign.ru>
On Wed, 2007-08-08 at 01:37 +0400, Oleg Nesterov wrote:
> On 08/07, Trond Myklebust wrote:
> >
> > On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> > > On 08/03, Trond Myklebust wrote:
> > > > I'll have a look at this. I suspect that most if not all of our calls to
> > > > run_workqueue()/flush_scheduled_work() can now be replaced by more
> > > > targeted calls to cancel_work_sync() and cancel_delayed_work_sync().
> > >
> > > Yes, please, if possible.
> >
> > All the NFS and SUNRPC cases appear to be trivial. IOW: the only reason
> > for the flush_workqueue()/flush_scheduled_work() calls was to ensure
> > that the cancel_work()/cancel_delayed_work() calls preceding them have
> > completed. Nevertheless I've split the conversion into two patches,
> > since one touches only the NFS code, whereas the other touches the
> > SUNRPC client and server code.
> >
> > The two patches have been tested, and appear to work...
>
> Great!
>
> > void
> > nfs4_kill_renewd(struct nfs_client *clp)
> > {
> > down_read(&clp->cl_sem);
> > - cancel_delayed_work(&clp->cl_renewd);
> > + cancel_delayed_work_sync(&clp->cl_renewd);
> > up_read(&clp->cl_sem);
> > - flush_scheduled_work();
> > }
>
> this looks unsafe to me, the window is very small, but afaics this can
> deadlock if called when nfs4_renew_state() has already started, but didn't
> take ->cl_sem yet.
Not really. We have removed the nfs_client from the public lists, and we
are guaranteed that there are no more active superblocks attached to it
so nothing can call the reclaimer routine (which is the only routine
that takes a write lock on clp->cl_sem).
> Can't we avoid taking clp->cl_sem here?
Yes, I believe that we can, for the same reasons as above: the race with
the reclaimer is impossible, hence the read lock on cl_sem is redundant.
> Btw, unless I missed something, the code without this patch looks incorrect
> too: cancel_delayed_work() can fail if the timer expired, but the ->cl_renewd
> didn't run yet. In that case nfs4_renew_state() can run and re-schedule itself
> after flush_scheduled_work() returns.
No, that should not be possible. Again, see above: there are no active
superblocks, so clp->cl_superblocks is empty.
Cheers
Trond
next prev parent reply other threads:[~2007-08-07 22:12 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-01 6:09 2.6.23-rc1-mm2 Andrew Morton
2007-08-01 6:25 ` 2.6.23-rc1-mm2 Paul Mundt
2007-08-01 7:58 ` 2.6.23-rc1-mm2 Mike Frysinger
2007-08-01 8:10 ` 2.6.23-rc1-mm2 Andrew Morton
2007-08-01 13:45 ` 2.6.23-rc1-mm2 Christoph Hellwig
2007-08-01 13:57 ` 2.6.23-rc1-mm2 Jason Wessel
2007-08-01 8:15 ` 2.6.23-rc1-mm2 Paul Mundt
2007-08-01 9:04 ` 2.6.23-rc1-mm2 Mike Frysinger
2007-08-01 12:22 ` 2.6.23-rc1-mm2 Jason Wessel
2007-08-01 7:36 ` 2.6.23-rc1-mm2 (vm-dont-run-touch_buffer-during-buffercache-lookups.patch) Eric St-Laurent
2007-08-01 7:46 ` Andrew Morton
2007-08-01 8:04 ` Eric St-Laurent
2007-08-01 8:30 ` Andrew Morton
2007-08-01 8:02 ` 2.6.23-rc1-mm2 Mariusz Kozlowski
2007-08-01 8:13 ` 2.6.23-rc1-mm2 Andrew Morton
2007-08-01 8:16 ` 2.6.23-rc1-mm2 Ingo Molnar
2007-08-01 10:23 ` 2.6.23-rc1-mm2 Jiri Kosina
2007-08-02 9:47 ` 2.6.23-rc1-mm2 Mariusz Kozlowski
2007-08-02 14:20 ` [linux-usb-devel] 2.6.23-rc1-mm2 Alan Stern
2007-08-02 14:26 ` Jiri Kosina
2007-08-02 14:32 ` Mariusz Kozlowski
2007-08-01 10:32 ` 2.6.23-rc1-mm2 Paul Mackerras
2007-08-02 10:14 ` 2.6.23-rc1-mm2 Mariusz Kozlowski
2007-08-03 9:39 ` 2.6.23-rc1-mm2 Kumar Gala
2007-08-06 19:12 ` 2.6.23-rc1-mm2 Segher Boessenkool
2007-08-06 19:10 ` 2.6.23-rc1-mm2 Segher Boessenkool
2007-08-01 16:36 ` 2.6.23-rc1-mm2 Greg KH
2007-08-06 19:08 ` 2.6.23-rc1-mm2 Segher Boessenkool
2007-08-06 19:34 ` 2.6.23-rc1-mm2 Mariusz Kozlowski
2007-08-06 21:25 ` 2.6.23-rc1-mm2 Segher Boessenkool
2007-08-06 22:34 ` 2.6.23-rc1-mm2 Mariusz Kozlowski
2007-08-06 23:12 ` 2.6.23-rc1-mm2 Segher Boessenkool
2007-08-01 9:34 ` [PATCH] prevent SSB compilation on s390 part 2 Heiko Carstens
2007-08-01 12:24 ` John W. Linville
2007-08-01 14:43 ` Heiko Carstens
2007-08-01 14:54 ` Michael Buesch
2007-08-01 10:33 ` unionfs compile error ( Re: 2.6.23-rc1-mm2 ) Gabriel C
2007-08-01 17:22 ` Andrew Morton
2007-08-01 17:27 ` Josef Sipek
2007-08-02 16:29 ` Erez Zadok
2007-08-01 17:35 ` Gabriel C
2007-08-01 10:56 ` 2.6.23-rc1-mm2 Gabriel C
2007-08-01 17:26 ` 2.6.23-rc1-mm2 Andrew Morton
2007-08-01 17:39 ` 2.6.23-rc1-mm2 Gabriel C
2007-08-01 11:16 ` [PATCH] fix slown down printk on boot compile error Heiko Carstens
2007-08-01 16:32 ` Randy Dunlap
2007-08-01 13:01 ` drivers/scsi/advansys.c compile error ( Re: 2.6.23-rc1-mm2 ) Gabriel C
2007-08-01 13:39 ` [PATCH] drivers/scsi/advansys.c: fix advansys_board_found compile error Eugene Teo
2007-08-01 13:54 ` Gabriel C
2007-08-01 13:55 ` Matthew Wilcox
2007-08-01 14:27 ` Gabriel C
2007-08-01 14:32 ` Matthew Wilcox
2007-08-01 14:46 ` Gabriel C
2007-08-01 14:23 ` [PATCH -mm] Fix defined but not used warning in drivers/kvm/vmx.c Gabriel C
2007-08-01 18:35 ` Avi Kivity
2007-08-01 15:19 ` [PATCH -mm] Fix a section mismatch warning Gabriel C
2007-08-01 20:13 ` 2.6.23-rc1-mm2 (checks-for-80wire-cable-use-in-pata_via) Laurent Riffard
2007-08-01 20:30 ` 2.6.23-rc1-mm2 Valdis.Kletnieks
2007-08-01 20:40 ` 2.6.23-rc1-mm2 Andrew Morton
2007-08-01 20:52 ` 2.6.23-rc1-mm2 Torsten Kaiser
2007-08-01 21:17 ` 2.6.23-rc1-mm2 Andrew Morton
2007-08-01 23:40 ` 2.6.23-rc1-mm2 Mel Gorman
2007-08-02 4:38 ` 2.6.23-rc1-mm2 Torsten Kaiser
2007-08-02 14:01 ` 2.6.23-rc1-mm2 Andy Whitcroft
2007-08-02 17:44 ` 2.6.23-rc1-mm2 Torsten Kaiser
2007-08-01 23:40 ` INOTIFY=n , AUDIT*=y compile error Gabriel C
2007-08-01 23:59 ` [PATCH -mm] linux-audit list is subscribers-only Gabriel C
2007-08-02 1:30 ` Randy Dunlap
2007-08-02 13:11 ` [PATCH -mm] Fix section mismatch warnings in sound/pci/hda/ Gabriel C
2007-08-02 13:24 ` Takashi Iwai
2007-08-02 16:32 ` Sam Ravnborg
2007-08-02 17:17 ` Takashi Iwai
2007-08-02 17:31 ` 2.6.23-rc1-mm2: Fix crash in sysfs_hash_and_remove Rafael J. Wysocki
2007-08-02 17:34 ` Tejun Heo
2007-08-02 18:19 ` Eric W. Biederman
2007-08-03 11:00 ` 2.6.23-rc1-mm2 Marc Dietrich
2007-08-03 16:38 ` 2.6.23-rc1-mm2 Andrew Morton
2007-08-03 17:03 ` [NFS] 2.6.23-rc1-mm2 Trond Myklebust
2007-08-03 17:21 ` Oleg Nesterov
2007-08-06 6:24 ` Johannes Berg
2007-08-06 10:53 ` Oleg Nesterov
2007-08-06 10:58 ` Johannes Berg
2007-08-06 11:05 ` Marc Dietrich
2007-08-06 11:13 ` Johannes Berg
2007-08-06 16:24 ` Trond Myklebust
2007-08-07 12:09 ` Marc Dietrich
2007-08-07 21:08 ` Trond Myklebust
2007-08-07 21:37 ` Oleg Nesterov
2007-08-07 22:05 ` Trond Myklebust [this message]
2007-08-07 22:20 ` Oleg Nesterov
2007-08-07 23:08 ` Trond Myklebust
2007-08-07 23:14 ` Oleg Nesterov
2007-08-08 21:31 ` 2.6.23-rc1-mm2: MMC_ARMMMCI compile error Adrian Bunk
2007-08-09 12:03 ` Pierre Ossman
2007-08-14 21:21 ` [-mm patch] make pm3fb_init() static again Adrian Bunk
2007-08-14 21:21 ` [-mm patch] fs/reiser4/plugin/: make 3 functions static Adrian Bunk
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=1186524314.6625.29.camel@heimdal.trondhjem.org \
--to=trond.myklebust@fys.uio.no \
--cc=Marc.Dietrich@ap.physik.uni-giessen.de \
--cc=akpm@linux-foundation.org \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=neilb@suse.de \
--cc=nfs@lists.sourceforge.net \
--cc=oleg@tv-sign.ru \
/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
all inboxes | Powered by JetHome®