linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Linux 2.6.36-rc7
       [not found]   ` <1286473768.2656.21.camel@dhcp231-98.rdu.redhat.com>
@ 2010-10-08 12:06     ` Andreas Gruenbacher
  2010-10-08 16:33       ` David Daney
  2010-10-08 16:38       ` Linux 2.6.36-rc7 Eric Paris
  0 siblings, 2 replies; 7+ messages in thread
From: Andreas Gruenbacher @ 2010-10-08 12:06 UTC (permalink / raw)
  To: Eric Paris
  Cc: Alan Cox, Tvrtko Ursulin, Linus Torvalds,
	Linux Kernel Mailing List, Christoph Hellwig, linux-fsdevel

On Thursday 07 October 2010 19:49:28 Eric Paris wrote:
> The safest thing would probably be to punt the syscalls to 2.6.37.
> Which is sad since I know a number of people are already working against
> them, but maybe that proves it's the best approach?

I agree with removing the syscalls from 2.6.36 because of the following 
reasons:

 * Reviewers have complained that the feature was not ready to be merged, yet.

 * At least some of the criticism did not get addressed (neither discussed nor
   fixed).

 * Some weaknesses in the interface design were only identified and fixed late
   in the -rc phase, changing the ABI.  There may be more issues, like the
   priority discussion.  This might leave us with a broken ABI we would need
   to support forever.

   (Making fanotify fit for HSM hasn't been thought through at all AFAIK but
   fanotify has legitimate use cases apart from HSM, so I don't necessarily
   consider this a blocker.)

 * The code has shown to contain the kinds of bugs which show that it was not
   tested very well before merging.

Thanks,
Andreas

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Linux 2.6.36-rc7
  2010-10-08 12:06     ` Linux 2.6.36-rc7 Andreas Gruenbacher
@ 2010-10-08 16:33       ` David Daney
  2010-10-08 21:50         ` Andreas Gruenbacher
  2010-10-08 16:38       ` Linux 2.6.36-rc7 Eric Paris
  1 sibling, 1 reply; 7+ messages in thread
From: David Daney @ 2010-10-08 16:33 UTC (permalink / raw)
  To: Andreas Gruenbacher
  Cc: Eric Paris, Alan Cox, Tvrtko Ursulin, Linus Torvalds,
	Linux Kernel Mailing List, Christoph Hellwig, linux-fsdevel

On 10/08/2010 05:06 AM, Andreas Gruenbacher wrote:
> On Thursday 07 October 2010 19:49:28 Eric Paris wrote:
>> The safest thing would probably be to punt the syscalls to 2.6.37.
>> Which is sad since I know a number of people are already working against
>> them, but maybe that proves it's the best approach?
>
> I agree with removing the syscalls from 2.6.36 because of the following
> reasons:

How would the mechanics of this be achieved?

Is it enough to just unconditionally return -ENOSYS from the sys_*() 
functions?  Or should all the patches be reverted?

David Daney

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Linux 2.6.36-rc7
  2010-10-08 12:06     ` Linux 2.6.36-rc7 Andreas Gruenbacher
  2010-10-08 16:33       ` David Daney
@ 2010-10-08 16:38       ` Eric Paris
  2010-10-08 21:45         ` Andreas Gruenbacher
  1 sibling, 1 reply; 7+ messages in thread
From: Eric Paris @ 2010-10-08 16:38 UTC (permalink / raw)
  To: Andreas Gruenbacher
  Cc: Alan Cox, Tvrtko Ursulin, Linus Torvalds,
	Linux Kernel Mailing List, Christoph Hellwig, linux-fsdevel

On Fri, 2010-10-08 at 14:06 +0200, Andreas Gruenbacher wrote:
> On Thursday 07 October 2010 19:49:28 Eric Paris wrote:
> > The safest thing would probably be to punt the syscalls to 2.6.37.
> > Which is sad since I know a number of people are already working against
> > them, but maybe that proves it's the best approach?
> 
> I agree with removing the syscalls from 2.6.36 because of the following 
> reasons:

I disagree with all of your reasons and have argued my position on this
topic repeatedly and don't see the need to refute your claims again.

However, THIS is potentially a real ABI problem and something which
deals with the interface.  Alan seemed to lean towards pulling the
syscalls.  It is relatively easily solved without changing the interface
or breaking userspace in 2.6.37.  We use some set of the flags bits as a
priority (we only use 2 of the 32 bits today so we have plenty) and
order groups with highest priority first, 0 priority last, and 2+ groups
with the same priority have unpredictable ordering.  I'd then call
priorities other than 0 a 2.6.37 feature.  If we do it in flags I think
that leaves us with say 8 bits and thus 255 priorities.  Maybe people
want more, if so, that's a interface change to add a new argument.

Now if Alan would still like me to pull, if anyone has any other 11th
hour interface problems, or if 255 priorities doesn't seem like enough
to someone I am wondering what the best way to unhook is.  Just make the
functions return -ENOSYS as the first line or actually troll through all
of the arches and explicily unhook and rehook to sys_ni_syscall?  I
started on the latter, but it seems to be a rather large patch at this
point...

-Eric

------

I said I wouldn't refute your claims but I can't help myself on one
account which I think might mislead people.

 * Some weaknesses in the interface design were only identified and fixed late
   in the -rc phase, changing the ABI.  There may be more issues, like the
   priority discussion.  This might leave us with a broken ABI we would need
   to support forever.

Between rc2 and rc3 we switched the order and size of a couple of fields
to help alignment, it did break ABI, but it wasn't an interface failing.
See: 0fb85621df4f.  It also lead to an interesting idea about a new type
for linux/types.h which both fanotify and the networking could make use
of (but isn't picked up, I'm not sure we know who is in charge of
types.h)

I concede the interface may in fact not be perfect for every user.  I
have ask for ideas and feedback on proposals for literally (not
figuratively) years.  It has gone through many iterations.  The
interface has been in Linus's kernel for some months and I know of
numerous people who are starting to code to it and haven't (until now)
found interface failings.  We can talk about how problems might be out
there but if they haven't been found after all this time I doubt just
waiting longer is going to change anything.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Linux 2.6.36-rc7
  2010-10-08 16:38       ` Linux 2.6.36-rc7 Eric Paris
@ 2010-10-08 21:45         ` Andreas Gruenbacher
  0 siblings, 0 replies; 7+ messages in thread
From: Andreas Gruenbacher @ 2010-10-08 21:45 UTC (permalink / raw)
  To: Eric Paris
  Cc: Alan Cox, Tvrtko Ursulin, Linus Torvalds,
	Linux Kernel Mailing List, Christoph Hellwig, linux-fsdevel

On Friday 08 October 2010 18:38:28 Eric Paris wrote:
> However, THIS is potentially a real ABI problem and something which
> deals with the interface.  Alan seemed to lean towards pulling the
> syscalls. It is relatively easily solved without changing the interface
> or breaking userspace in 2.6.37.  We use some set of the flags bits as a
> priority (we only use 2 of the 32 bits today so we have plenty) and
> order groups with highest priority first, 0 priority last, and 2+ groups
> with the same priority have unpredictable ordering.  I'd then call
> priorities other than 0 a 2.6.37 feature.  If we do it in flags I think
> that leaves us with say 8 bits and thus 255 priorities.

That's a possibility but it seems quite messy for a brand new system call.  
I'd still pull the system call and work out the few remaining quirkses.

Thanks.

> ------
> 
> I said I wouldn't refute your claims but I can't help myself on one
> account which I think might mislead people.
> 
>  * Some weaknesses in the interface design were only identified and fixed
>    late in the -rc phase, changing the ABI.  There may be more issues, like
>    the priority discussion.  This might leave us with a broken ABI we would
>    need to support forever.
> 
> Between rc2 and rc3 we switched the order and size of a couple of fields
> to help alignment, it did break ABI, but it wasn't an interface failing.
> See: 0fb85621df4f.

See, a weakness, not a failure.  What I said.

The main issue that Andreas Schwab has pointed out (and which also lead to 
this commit) was the packing of the structs which leads to inefficient code, 
though.  This hasn't been fixed but it still can be, in a backwards compatible 
way.

Thanks,
Andreas

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Linux 2.6.36-rc7
  2010-10-08 16:33       ` David Daney
@ 2010-10-08 21:50         ` Andreas Gruenbacher
  2010-10-08 21:59           ` H. Peter Anvin
  0 siblings, 1 reply; 7+ messages in thread
From: Andreas Gruenbacher @ 2010-10-08 21:50 UTC (permalink / raw)
  To: David Daney
  Cc: Eric Paris, Alan Cox, Tvrtko Ursulin, Linus Torvalds,
	Linux Kernel Mailing List, Christoph Hellwig, linux-fsdevel

On Friday 08 October 2010 18:33:55 David Daney wrote:
> On 10/08/2010 05:06 AM, Andreas Gruenbacher wrote:
> > On Thursday 07 October 2010 19:49:28 Eric Paris wrote:
> >> The safest thing would probably be to punt the syscalls to 2.6.37.
> >> Which is sad since I know a number of people are already working against
> >> them, but maybe that proves it's the best approach?
> >
> > I agree with removing the syscalls from 2.6.36 because of the following
> > reasons:
> 
> How would the mechanics of this be achieved?
> 
> Is it enough to just unconditionally return -ENOSYS from the sys_*() 
> functions?  Or should all the patches be reverted?

Whatever works I guess ... they would get reactivated pretty soon, anyway.

Andreas

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Linux 2.6.36-rc7
  2010-10-08 21:50         ` Andreas Gruenbacher
@ 2010-10-08 21:59           ` H. Peter Anvin
  2010-10-11 22:13             ` fanotify: disable fanotify syscalls Eric Paris
  0 siblings, 1 reply; 7+ messages in thread
From: H. Peter Anvin @ 2010-10-08 21:59 UTC (permalink / raw)
  To: Andreas Gruenbacher
  Cc: David Daney, Eric Paris, Alan Cox, Tvrtko Ursulin, Linus Torvalds,
	Linux Kernel Mailing List, Christoph Hellwig, linux-fsdevel

On 10/08/2010 02:50 PM, Andreas Gruenbacher wrote:
> On Friday 08 October 2010 18:33:55 David Daney wrote:
>> On 10/08/2010 05:06 AM, Andreas Gruenbacher wrote:
>>> On Thursday 07 October 2010 19:49:28 Eric Paris wrote:
>>>> The safest thing would probably be to punt the syscalls to 2.6.37.
>>>> Which is sad since I know a number of people are already working against
>>>> them, but maybe that proves it's the best approach?
>>>
>>> I agree with removing the syscalls from 2.6.36 because of the following
>>> reasons:
>>
>> How would the mechanics of this be achieved?
>>
>> Is it enough to just unconditionally return -ENOSYS from the sys_*() 
>> functions?  Or should all the patches be reverted?
> 
> Whatever works I guess ... they would get reactivated pretty soon, anyway.
> 

Returning -ENOSYS should be sufficient (that's what a non-system-call
does); it would *also* be good to block any headers from getting
exported to userspace so people don't end up with compiling against the
wrong version of the kernel headers and then wonder why their code
doesn't work in the future.

	-hpa

^ permalink raw reply	[flat|nested] 7+ messages in thread

* fanotify: disable fanotify syscalls
  2010-10-08 21:59           ` H. Peter Anvin
@ 2010-10-11 22:13             ` Eric Paris
  0 siblings, 0 replies; 7+ messages in thread
From: Eric Paris @ 2010-10-11 22:13 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Andreas Gruenbacher, David Daney, Alan Cox, Tvrtko Ursulin,
	Linux Kernel Mailing List, Christoph Hellwig, linux-fsdevel,
	H. Peter Anvin

This patch disables the fanotify syscalls by just not building them and
letting the cond_syscall() statements in kernel/sys_ni.c redirect them
to sys_ni_syscall().

It was pointed out by Tvrtko Ursulin that the fanotify interface did not
include an explicit prioritization between groups.  This is necessary
for fanotify to be usable for hierarchical storage management software,
as they must get first access to the file, before inotify-like notifiers
see the file.

This feature can be added in an ABI compatible way in the next release
(by using a number of bits in the flags field to carry the info) but it
was suggested by Alan that maybe we should just hold off and do it in
the next cycle, likely with an (new) explicit argument to the syscall.
I don't like this approach best as I know people are already starting to
use the current interface, but Alan is all wise and noone on list backed
me up with just using what we have.  I feel this is needlessly ripping
the rug out from under people at the last minute, but if others think it
needs to be a new argument it might be the best way forward.

Three choices:
Go with what we got (and implement the new feature next cycle).  Add a
new field right now (and implement the new feature next cycle).  Wait
till next cycle to release the ABI (and implement the new feature next
cycle).  This is number 3.

Signed-off-by: Eric Paris <eparis@redhat.com>

---

 fs/notify/Kconfig    |    2 +-
 include/linux/Kbuild |    1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/notify/Kconfig b/fs/notify/Kconfig
index 22c629e..b388443 100644
--- a/fs/notify/Kconfig
+++ b/fs/notify/Kconfig
@@ -3,4 +3,4 @@ config FSNOTIFY
 
 source "fs/notify/dnotify/Kconfig"
 source "fs/notify/inotify/Kconfig"
-source "fs/notify/fanotify/Kconfig"
+#source "fs/notify/fanotify/Kconfig"
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 626b629..4e8ea8c 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -118,7 +118,6 @@ header-y += eventpoll.h
 header-y += ext2_fs.h
 header-y += fadvise.h
 header-y += falloc.h
-header-y += fanotify.h
 header-y += fb.h
 header-y += fcntl.h
 header-y += fd.h

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-10-11 22:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <AANLkTi=LsBNU+O2hqZUcM2nYM_ze6qPq3thwSZBMtY_v@mail.gmail.com>
     [not found] ` <20101007190741.2dc62626@lxorguk.ukuu.org.uk>
     [not found]   ` <1286473768.2656.21.camel@dhcp231-98.rdu.redhat.com>
2010-10-08 12:06     ` Linux 2.6.36-rc7 Andreas Gruenbacher
2010-10-08 16:33       ` David Daney
2010-10-08 21:50         ` Andreas Gruenbacher
2010-10-08 21:59           ` H. Peter Anvin
2010-10-11 22:13             ` fanotify: disable fanotify syscalls Eric Paris
2010-10-08 16:38       ` Linux 2.6.36-rc7 Eric Paris
2010-10-08 21:45         ` Andreas Gruenbacher

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).