From: "J. Bruce Fields" <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Trond Myklebust <trond@netapp.com>,
linux-nfs@vger.kernel.org, simo@redhat.com
Subject: Re: synchronous AF_LOCAL connect
Date: Wed, 20 Feb 2013 11:34:24 -0500 [thread overview]
Message-ID: <20130220163424.GK14606@fieldses.org> (raw)
In-Reply-To: <EA9EE56A-73BB-4866-AA86-1EE4150AFE87@oracle.com>
On Wed, Feb 20, 2013 at 11:20:05AM -0500, Chuck Lever wrote:
>
> On Feb 20, 2013, at 11:03 AM, J. Bruce Fields <bfields@fieldses.org>
> wrote:
>
> > On Wed, Feb 20, 2013 at 10:56:54AM -0500, Chuck Lever wrote:
> >>
> >> On Feb 20, 2013, at 10:47 AM, "J. Bruce Fields"
> >> <bfields@fieldses.org> wrote:
> >>
> >>> On Mon, Feb 18, 2013 at 05:54:25PM -0500, bfields wrote:
> >>>> The rpc code expects all connects to be done asynchronously by a
> >>>> workqueue. But that doesn't seem necessary in the AF_LOCAL case.
> >>>> The only user (rpcbind) actually wants the connect done in the
> >>>> context of a process with the right namespace. (And that will be
> >>>> true of gss proxy too, which also wants to use AF_LOCAL.)
> >>>>
> >>>> But maybe I'm missing something.
> >>>>
> >>>> Also, I haven't really tried to understand this code--I just
> >>>> assumed I could basically call xs_local_setup_socket from ->setup
> >>>> instead of the workqueue, and that seems to work based on a very
> >>>> superficial test. At a minimum I guess the PF_FSTRANS fiddling
> >>>> shouldn't be there.
> >>>
> >>> Here it is with that and the other extraneous xprt stuff gone.
> >>>
> >>> See any problem with doing this?
> >>
> >> Nothing is screaming at me. As long as an AF_LOCAL connect
> >> operation doesn't ever sleep, this should be safe, I think.
> >
> > I'm sure it must sleep. Why would that make any difference?
>
> As I understand it, sometimes an ASYNC RPC task is driving the
> connect, and such a task must never sleep when calling outside of
> rpciod.
AF_LOCAL is currently only used to register rpc services. I can't see
any case when it's called asynchronously.
(And the same will be true of the gss-proxy calls, which also plan to
use AF_LOCAL.)
> rpciod must be allowed to put that task on a wait queue and
> go do other work if the connect operation doesn't succeed immediately,
> otherwise all ASYNC RPC operations hang (or worse, an oops occurs).
>
> >> How did you test it?
> >
> > I'm just doing my usual set of connectathon runs, and assuming mounts
> > would fail if the server's rpcbind registration failed.
>
> Have you tried killing rpcbind first to see how the error cases are handled?
No, thanks for the suggestion, I'll check.
> Does rpcbind get the registration's "owner" field correct when
> namespaces are involved?
Looking at rpcb_clnt.c.... I only ever see r_owner set to "" or "0". I
can't see why that would need to change in a container.
--b.
next prev parent reply other threads:[~2013-02-20 16:34 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-18 22:54 synchronous AF_LOCAL connect J. Bruce Fields
2013-02-20 15:47 ` J. Bruce Fields
2013-02-20 15:56 ` Chuck Lever
2013-02-20 16:03 ` J. Bruce Fields
2013-02-20 16:20 ` Chuck Lever
2013-02-20 16:34 ` J. Bruce Fields [this message]
2013-02-20 17:04 ` Chuck Lever
2013-02-20 17:27 ` Myklebust, Trond
2013-02-20 17:32 ` Simo Sorce
2013-02-20 23:03 ` J. Bruce Fields
2013-02-21 16:21 ` J. Bruce Fields
2013-02-21 16:27 ` Chuck Lever
2013-02-21 16:30 ` J. Bruce Fields
2013-02-21 16:39 ` J. Bruce Fields
2013-02-20 17:39 ` Chuck Lever
2013-02-20 18:02 ` Myklebust, Trond
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=20130220163424.GK14606@fieldses.org \
--to=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=simo@redhat.com \
--cc=trond@netapp.com \
/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