LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Ian Kent <raven@themaw.net>
Cc: Kernel Mailing List <linux-kernel@vger.kernel.org>,
autofs mailing list <autofs@linux.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Christoph Hellwig <hch@lst.de>, Al Viro <viro@zeniv.linux.org.uk>,
Thomas Graf <tgraf@redhat.com>,
netdev@vger.kernel.org
Subject: Re: [PATCH 4/4] autofs4 - add miscelaneous device for ioctls
Date: Fri, 11 Apr 2008 21:03:16 -0700 [thread overview]
Message-ID: <20080411210316.6e385236.akpm@linux-foundation.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0804111425290.32624@raven.themaw.net>
On Fri, 11 Apr 2008 15:02:39 +0800 (WST) Ian Kent <raven@themaw.net> wrote:
> On Sat, 1 Mar 2008, Ian Kent wrote:
>
> >
> > On Wed, 2008-02-27 at 21:17 -0800, Andrew Morton wrote:
> > > On Tue, 26 Feb 2008 12:23:55 +0900 (WST) Ian Kent <raven@themaw.net> wrote:
> > >
> > > > Hi Andrew,
> > > >
> > > > Patch to add miscellaneous device to autofs4 module for
> > > > ioctls.
> > >
> > > Could you please document the new kernel interface which you're proposing?
> > > In Docmentation/ or in the changelog?
> > >
> > > We seem to be passing some string into a miscdevice ioctl and getting some
> > > results back. Be aware that this won't be a terribly popular proposal, so
> > > I'd suggest that you fully describe the problem which it's trying to solve,
> > > and how it solves it, and why the various alternatives (sysfs, netlink,
> > > mount options, etc) were judged unsuitable.
> >
> > It appears I could do this with the generic netlink subsystem.
> > I'll have a go at it.
> >
>
> I've spent several weeks on this now and I'm having considerable
> difficulty with the expire function.
>
> First, I think using a raw netlink implementation defeats the point of
> using this approach at all due to increased complexity. So I've used the
> generic netlink facility and the libnl library for user space. While the
> complexity on the kernel side is acceptable that isn't the case in user
> space, the code for the library to issue mount point control commands has
> more than doubled in size and is still not working for mount point
> expiration. This has been made more difficult because libnl isn't
> thread safe, but I have overcome this limitation for everything but
> the expire function, I now can't determine whether the problem I have with
> receiving multicast messages, possibly out of order, on individual
> netlink sockets opened specifically for this purpose, is due to this or is
> something I'm doing wrong.
>
> The generic netlink implementation allows only one message to be in flight
> at a time. But my expire selects an expire candidate (if possible), sends
> a request to the daemon to do the umount, obtains the result status and
> returns this as the result to the original expire request. Consequently, I
> need to spawn a kernel thread to do this and return, then listen for the
> matching multicast message containing the result. I don't particularly
> like spawning a thread to do this because it opens the possibility of
> orphaned threads which introduces other difficulties cleaning them up if
> the user space application goes away or misbehaves. But I'm also having
> problems catching the multicast messages. This works fine in normal
> operation but fails badly when I have multiple concurrent expires
> happening, such as when shutting down the daemon with several hundred
> active mounts. I can't avoid the fact that netlink doesn't provide the
> same functionality as the ioctl interface and clearly isn't meant to.
Gee, it sounds like you went above and beyond the call there.
The one-message-in-flight limitation of genetlink is suprising - one would
expect a kernel subsystem (especially a networking one) to support
queueing. I guess it was expedient and the need had not arisen.
> So, the question is, what are the criteria to use for deciding that a
> netlink based implementation isn't appropriate because I think I'm well
> past it now?
>
> Comments please.
Do I recall correctly in remembering that your original design didn't
really add any _new_ concepts to autofs interfacing? That inasmuch as
the patch sinned, it was repeating already-committed sins?
And: you know more about this than anyone else, and you are (now) unbiased
by the presence of existing code. What's your opinion?
next prev parent reply other threads:[~2008-04-12 4:04 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-26 3:21 [PATCH 0/4] autofs4 - autofs needs a " Ian Kent
2008-02-26 3:22 ` [PATCH 1/4] autofs4 - check for invalid dentry in getpath Ian Kent
2008-02-26 3:23 ` [PATCH 3/4] autofs4 - track uid and gid of last mount requestor Ian Kent
2008-02-26 5:14 ` [PATCH 3/4] autofs4 - track uid and gid of last mount requestor - correction Ian Kent
2008-02-28 4:45 ` [PATCH 3/4] autofs4 - track uid and gid of last mount requestor Andrew Morton
2008-02-28 6:22 ` Ian Kent
2008-02-28 6:37 ` Andrew Morton
2008-02-28 7:08 ` Ian Kent
2008-02-28 7:23 ` Andrew Morton
2008-02-28 8:00 ` Ian Kent
2008-02-28 17:13 ` Jeff Moyer
2008-02-28 19:51 ` Serge E. Hallyn
2008-02-29 3:32 ` Ian Kent
2008-02-29 16:09 ` Serge E. Hallyn
2008-02-29 16:20 ` Pavel Emelyanov
2008-02-29 17:42 ` Serge E. Hallyn
2008-03-02 0:49 ` Eric W. Biederman
2008-03-02 1:13 ` Eric W. Biederman
2008-03-03 15:28 ` Serge E. Hallyn
2008-03-04 22:16 ` Eric W. Biederman
2008-02-28 7:51 ` Pavel Emelyanov
2008-02-28 7:59 ` Andrew Morton
2008-02-28 8:06 ` Ian Kent
2008-02-28 12:31 ` [autofs] " Fabio Olive Leite
2008-02-28 20:33 ` Eric W. Biederman
2008-02-26 3:23 ` [PATCH 4/4] autofs4 - add miscelaneous device for ioctls Ian Kent
2008-02-28 5:17 ` Andrew Morton
2008-02-28 6:18 ` Ian Kent
2008-03-13 7:00 ` [RFC] " Ian Kent
2008-03-14 2:45 ` Ian Kent
2008-03-14 12:45 ` Thomas Graf
2008-03-14 14:10 ` Ian Kent
2008-02-29 16:24 ` Ian Kent
2008-04-11 7:02 ` Ian Kent
2008-04-12 4:03 ` Andrew Morton [this message]
2008-04-14 4:45 ` Ian Kent
2008-02-26 4:29 ` [PATCH 2/4] autofs4 - add mount option to display mount device Ian Kent
2008-02-28 5:17 ` Andrew Morton
2008-02-28 4:40 ` [PATCH 0/4] autofs4 - autofs needs a miscelaneous device for ioctls Andrew Morton
2008-02-28 6:07 ` Ian Kent
2008-08-07 11:40 [PATCH 1/4] autofs4 - cleanup autofs mount type usage Ian Kent
2008-08-07 11:40 ` [PATCH 4/4] autofs4 - add miscelaneous device for ioctls Ian Kent
2008-08-07 21:10 ` Andrew Morton
2008-08-08 3:39 ` Ian Kent
2008-08-08 5:31 ` Andrew Morton
2008-08-08 6:12 ` Ian Kent
2008-08-08 6:33 ` Andrew Morton
2008-08-09 12:59 ` Christoph Hellwig
2008-08-09 15:29 ` Ian Kent
2008-08-09 17:18 ` Christoph Hellwig
2008-08-10 5:20 ` Ian Kent
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=20080411210316.6e385236.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=autofs@linux.kernel.org \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=raven@themaw.net \
--cc=tgraf@redhat.com \
--cc=viro@zeniv.linux.org.uk \
--subject='Re: [PATCH 4/4] autofs4 - add miscelaneous device for ioctls' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).