Re: [PATCH v2 00/16] nfsd/sunrpc: add support for a workqueue-based nfsd
From: Al Viro
Date: Sat Dec 13 2014 - 12:30:25 EST
On Sat, Dec 13, 2014 at 09:06:45AM -0500, Jeff Layton wrote:
> On Fri, 12 Dec 2014 16:59:52 +0000
> Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> > On Fri, Dec 12, 2014 at 06:54:08AM -0500, Jeff Layton wrote:
> > > > Umm... I would be very surprised if it turned out to be a problem.
> > > > nfsd really doesn't give a fuck about its cwd and root - not in the
> > > > thread side of things. And (un)exporting is (a) not on a hot path
> > > > and (b) not done from a kernel thread anyway. fh_to_dentry and friends
> > > > doesn't care about root/cwd, etc.
> > > >
> > > > I don't see anything that could cause that kind of issues.
> > >
> > > I like the change overall -- it would certainly make my patch series
> > > simpler, but what about pathwalking? We do take the fs->lock in
> > > unlazy_walk. Is it possible we'd end up with more contention there?
> > That would take a pathname lookup in kernel thread side of nfsd that
> > * isn't single-component
> > * isn't LOOKUP_ROOT one (i.e. vfs_path_lookup() or file_open_root())
> > and I would really hope we don't have such things. Any such a beast would
> > allow probing the tree layout outside of what we export, to start with...
> > AFAICS, we really don't have anything of that sort. Note that e.g.
> > lookup_one_len() doesn't go anywhere near ->fs->lock...
> Ahh right. Ok, then I don't see any issue with this so far. Maybe worth
> letting it stew in -next once -rc1 ships? Thanks!
FWIW, right now I think that out of those 3 commits #1 (separating PID 1 from
init_fs + making all kernel threads get umask 0) and #3 (assorted crapectomy
in lustre, getting rid of odd games with fs_struct there) are OK for mainline,
with #2 (removal of unshare_fs_struct()) being -next fodder, to see if we get
anything like unexpected contention, etc.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/