LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Ian Kent <raven@themaw.net>
To: Andrew Morton <akpm@linux-foundation.org>
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>
Subject: Re: [PATCH 4/4] autofs4 - add miscelaneous device for ioctls
Date: Fri, 11 Apr 2008 15:02:39 +0800 (WST) [thread overview]
Message-ID: <Pine.LNX.4.64.0804111425290.32624@raven.themaw.net> (raw)
In-Reply-To: <1204302250.19890.22.camel@raven.themaw.net>
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.
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.
Ian
next prev parent reply other threads:[~2008-04-11 7:08 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 [this message]
2008-04-12 4:03 ` Andrew Morton
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=Pine.LNX.4.64.0804111425290.32624@raven.themaw.net \
--to=raven@themaw.net \
--cc=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=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).