From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Andrew Morton <akpm@osdl.org>
Cc: ak@suse.de, linux-cluster@redhat.com,
linux-fsdevel@vger.kernel.org, Joel.Becker@oracle.com,
linux-kernel@vger.kernel.org
Subject: Re: Re: GFS, what's remaining
Date: Mon, 05 Sep 2005 13:21:34 +0100 [thread overview]
Message-ID: <1125922894.8714.14.camel@localhost.localdomain> (raw)
In-Reply-To: <20050905021948.6241f1e0.akpm@osdl.org>
On Llu, 2005-09-05 at 02:19 -0700, Andrew Morton wrote:
> > create_lockspace()
> > release_lockspace()
> > lock()
> > unlock()
>
> Neat. I'd be inclined to make them syscalls then. I don't suppose anyone
> is likely to object if we reserve those slots.
If the locks are not file descriptors then answer the following:
- How are they ref counted
- What are the cleanup semantics
- How do I pass a lock between processes (AF_UNIX sockets wont work now)
- How do I poll on a lock coming free.
- What are the semantics of lock ownership
- What rules apply for inheritance
- How do I access a lock across threads.
- What is the permission model.
- How do I attach audit to it
- How do I write SELinux rules for it
- How do I use mount to make namespaces appear in multiple vservers
and thats for starters...
Every so often someone decides that a deeply un-unix interface with new
syscalls is a good idea. Every time history proves them totally bonkers.
There are cases for new system calls but this doesn't seem one of them.
Look at system 5 shared memory, look at system 5 ipc, and so on. You
can't use common interfaces on them, you can't select on them, you can't
sanely pass them by fd passing.
All our existing locking uses the following behaviour
fd = open(namespace, options)
fcntl(.. lock ...)
blah
flush
fcntl(.. unlock ...)
close
Unfortunately some people here seem to have forgotten WHY we do things
this way.
1. The semantics of file descriptors are well understood by users and by
programs. That makes programming easier and keeps code size down
2. Everyone knows how close() works including across fork
3. FD passing is an obscure art but understood and just works
4. Poll() is a standard understood interface
5. Ownership of files is a standard model
6. FD passing across fork/exec is controlled in a standard way
7. The semantics for threaded applications are defined
8. Permissions are a standard model
9. Audit just works with the same tools
9. SELinux just works with the same tools
10. I don't need specialist applications to see the system state (the
whole point of sysfs yet someone wants to break it all again)
11. fcntl fd locking is a posix standard interface with precisely
defined semantics. Our extensions including leases are very powerful
12. And yes - fcntl fd locking supports mandatory locking too. That also
is standards based with precise semantics.
Everyone understands how to use the existing locking operations. So if
you use the existing interfaces with some small extensions if neccessary
everyone understands how to use cluster locks. Isn't that neat....
next prev parent reply other threads:[~2005-09-05 12:21 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-01 10:46 GFS, what's remaining David Teigland
2005-09-01 10:42 ` Arjan van de Ven
2005-09-01 10:59 ` Andrew Morton
2005-09-01 14:49 ` Alan Cox
2005-09-01 14:27 ` Christoph Hellwig
2005-09-01 15:28 ` Alan Cox
2005-09-01 15:11 ` Lars Marowsky-Bree
2005-09-01 17:56 ` Christoph Hellwig
2005-09-02 7:04 ` David Teigland
2005-09-01 17:23 ` Daniel Phillips
2005-09-01 20:21 ` Andrew Morton
2005-09-02 21:17 ` Andi Kleen
2005-09-02 23:03 ` Bryan Henderson
2005-09-03 0:16 ` Mark Fasheh
2005-09-03 6:42 ` Daniel Phillips
2005-09-03 6:46 ` Wim Coekaerts
2005-09-03 22:21 ` Daniel Phillips
2005-09-04 1:09 ` [Linux-cluster] " Joel Becker
2005-09-04 1:32 ` Andrew Morton
2005-09-04 3:06 ` Joel Becker
2005-09-04 4:22 ` [Linux-cluster] " Daniel Phillips
2005-09-04 4:30 ` Joel Becker
2005-09-04 4:51 ` Daniel Phillips
2005-09-04 5:00 ` Joel Becker
2005-09-04 5:52 ` [Linux-cluster] " Daniel Phillips
2005-09-04 5:56 ` Joel Becker
2005-09-04 4:46 ` Andrew Morton
2005-09-04 4:58 ` Joel Becker
2005-09-04 5:41 ` Andrew Morton
2005-09-04 5:49 ` Joel Becker
2005-09-05 4:30 ` David Teigland
2005-09-05 8:54 ` [Linux-cluster] " Andrew Morton
2005-09-05 9:24 ` David Teigland
2005-09-05 9:19 ` [Linux-cluster] " Andrew Morton
2005-09-05 9:30 ` Daniel Phillips
2005-09-05 9:48 ` David Teigland
2005-09-05 12:21 ` Alan Cox [this message]
2005-09-05 19:53 ` Andrew Morton
2005-09-05 23:20 ` Alan Cox
2005-09-05 23:06 ` Andrew Morton
2005-09-14 9:01 ` [Linux-cluster] " Patrick Caulfield
2005-09-05 19:11 ` kurt.hackel
2005-09-04 6:10 ` Mark Fasheh
2005-09-04 7:23 ` Andrew Morton
2005-09-04 8:17 ` Mark Fasheh
2005-09-04 8:37 ` Andrew Morton
2005-09-04 6:40 ` [Linux-cluster] " Daniel Phillips
2005-09-04 7:28 ` Andrew Morton
2005-09-04 8:01 ` [Linux-cluster] " Joel Becker
2005-09-04 8:18 ` Andrew Morton
2005-09-04 9:11 ` Joel Becker
2005-09-04 9:18 ` [Linux-cluster] " Andrew Morton
2005-09-04 9:39 ` Joel Becker
2005-09-04 18:03 ` [Linux-cluster] " Hua Zhong
2005-09-04 19:51 ` Daniel Phillips
2005-09-04 7:12 ` Hua Zhong
2005-09-04 8:37 ` Alan Cox
2005-09-05 23:32 ` Joel Becker
2005-09-03 5:57 ` Daniel Phillips
2005-09-05 14:14 ` Lars Marowsky-Bree
2005-09-05 15:49 ` Daniel Phillips
2005-09-05 16:18 ` Dmitry Torokhov
2005-09-06 0:57 ` Daniel Phillips
2005-09-06 2:03 ` Dmitry Torokhov
2005-09-06 4:02 ` Daniel Phillips
2005-09-06 4:07 ` GFS, what's remainingh Dmitry Torokhov
2005-09-06 4:58 ` Daniel Phillips
2005-09-06 5:05 ` Dmitry Torokhov
2005-09-06 6:48 ` Daniel Phillips
2005-09-06 6:55 ` Dmitry Torokhov
2005-09-06 7:18 ` Daniel Phillips
2005-09-06 14:31 ` Dmitry Torokhov
2005-09-06 13:42 ` Alan Cox
2005-09-03 7:06 ` GFS, what's remaining Wim Coekaerts
2005-09-06 12:55 ` Suparna Bhattacharya
2005-09-03 5:18 ` David Teigland
2005-09-03 6:14 ` Arjan van de Ven
2005-09-03 6:42 ` D. Hazelton
2005-09-03 10:35 ` David Teigland
2005-09-03 20:56 ` Daniel Phillips
2005-09-04 20:33 ` Pavel Machek
2005-09-04 22:18 ` Joel Becker
2005-09-05 5:54 ` Theodore Ts'o
2005-09-05 7:09 ` Mark Fasheh
2005-09-05 14:07 ` Theodore Ts'o
2005-09-05 8:27 ` real read-only [was Re: GFS, what's remaining] Pavel Machek
2005-09-05 14:03 ` Theodore Ts'o
2005-09-05 10:44 ` Re: GFS, what's remaining Stephen C. Tweedie
2005-09-05 16:41 ` Greg Freemyer
2005-09-01 11:35 ` Arjan van de Ven
2005-09-02 9:44 ` David Teigland
2005-09-02 11:46 ` Jörn Engel
2005-09-03 5:28 ` Greg KH
2005-09-05 3:47 ` David Teigland
2005-09-05 8:58 ` Jörn Engel
2005-09-05 9:18 ` David Teigland
2005-09-05 5:43 ` David Teigland
2005-09-05 6:32 ` Pekka Enberg
2005-09-05 7:55 ` David Teigland
2005-09-05 8:00 ` Pekka Enberg
2005-09-10 10:11 ` Arjan van de Ven
2005-09-05 6:29 ` David Teigland
2005-09-08 5:41 ` David Teigland
2005-09-01 12:33 ` Pekka Enberg
2005-09-01 17:27 ` Daniel Phillips
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=1125922894.8714.14.camel@localhost.localdomain \
--to=alan@lxorguk.ukuu.org.uk \
--cc=Joel.Becker@oracle.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=linux-cluster@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).