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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.