mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@sophos.com>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Douglas Leeder <douglas.leeder@sophos.com>,
	Pavel Machek <pavel@ucw.cz>, Eric Paris <eparis@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	"malware-list@dmesg.printk.net" <malware-list@dmesg.printk.net>,
	"Valdis.Kletnieks@vt.edu" <Valdis.Kletnieks@vt.edu>,
	"greg@kroah.com" <greg@kroah.com>,
	"jcm@redhat.com" <jcm@redhat.com>,
	"tytso@mit.edu" <tytso@mit.edu>,
	"arjan@infradead.org" <arjan@infradead.org>,
	"david@lang.hm" <david@lang.hm>,
	"jengelh@medozas.de" <jengelh@medozas.de>,
	"aviro@redhat.com" <aviro@redhat.com>,
	"mrkafk@gmail.com" <mrkafk@gmail.com>,
	"alexl@redhat.com" <alexl@redhat.com>,
	"hch@infradead.org" <hch@infradead.org>,
	"alan@lxorguk.ukuu.org.uk" <alan@lxorguk.ukuu.org.uk>,
	"mmorley@hcl.in" <mmorley@hcl.in>
Subject: Re: fanotify - overall design before I start sending patches
Date: Thu, 6 Aug 2009 11:59:44 +0100	[thread overview]
Message-ID: <200908061159.45550.tvrtko.ursulin@sophos.com> (raw)
In-Reply-To: <1249554548.32113.137.camel@twins>

On Thursday 06 August 2009 11:29:08 Peter Zijlstra wrote:
> On Thu, 2009-08-06 at 11:20 +0100, Douglas Leeder wrote:
> > Pavel Machek wrote:
> > > On Wed 2009-08-05 17:46:16, Tvrtko Ursulin wrote:
> > >> On Wednesday 05 August 2009 03:05:34 Pavel Machek wrote:
> > >>
> > >> Just to make sure you haven't missed this - it is not that they have
> > >> to complete the whole operation before the timeout period (since you
> > >> mention realtime/mlock I suspect this is what you think?), but
> > >> _during_ the operation they have to show that they are active by
> > >> sending something like keep alive messages.
> > >>
> > >> Or you are worried about failing to meet even that on a loaded system?
> > >> There has to be something like this otherwise hung userspace client
> > >> would kill the whole system.
> > >
> > > Of course, I'm worried about failing to meet this on loaded
> > > system. And the fact that I _have_ to worry about that means that
> > > interface is ugly/broken.
> >
> > You mean that in 5 seconds, you won't have any point when you can tell
> > the kernel, "I'm still working"?
>
> I have to agree with Pavel here, either you demand the monitor process
> is RT/mlock and can respond in time, in which case the interface doesn't
> need a 5 second timeout, or you cannot and you have a hole somewhere.
>
> Now having the kernel depend on any user task to guarantee process is of
> course utterly insane too.
>
> Sounds like a bad place to be, and I'd rather not have it.
>
> If you really need the intermediate you might as well use a FUSE
> filesystem, but I suspect there's plenty of problems there as well.

So you mount FUSE on top of everything if you want to have systemwide 
monitoring and then you _again_ depend on _userspace_, no? By this logic 
everything has to be in kernel. But even if it was, and the CPUs are so 
overloaded that an userspace thread does not get to run at all for X seconds, 
are kernel threads scheduled differently eg. with priority other than nice 
levels?

Also, it is not like that when the timeout expires the kernel will hang. 
Rather, some application would get an error from open(2). Note how that is by 
system configuration where the admin has made a _deliberate_ decision to 
install such software which can cause this behaviour. 

You can have a RT/mlocked client but what if it crashes (lets say busy loops)? 
Which is also something timeout mechanism is guarding against.

I really think if we want to have this functionality there is no way around 
the fact that any userspace can fail. Kernel should handle it of course, and 
Eric's design does it by kicking repeatedly misbehaving clients out.

If the timeout is made configurable I think this is the best that can be done 
here. I don't think the problem is so huge as you are presenting it.

Tvrtko

  reply	other threads:[~2009-08-06 10:59 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-24 20:13 Eric Paris
2009-07-24 20:48 ` david
2009-07-24 21:01   ` Eric Paris
2009-07-24 21:44     ` Jamie Lokier
2009-07-27 17:52       ` Evgeniy Polyakov
2009-07-29 20:11         ` Eric Paris
2009-07-24 21:00 ` Andreas Dilger
2009-07-24 21:21   ` Eric Paris
2009-07-24 22:42     ` Andreas Dilger
2009-07-24 23:01       ` Jamie Lokier
2009-07-24 22:48 ` Jamie Lokier
2009-07-24 23:25   ` Eric Paris
2009-07-24 23:46     ` Jamie Lokier
2009-07-24 23:49   ` Eric Paris
2009-07-25  0:29     ` Jamie Lokier
2009-07-27 18:33       ` Andreas Dilger
2009-07-27 19:23         ` Jamie Lokier
2009-07-28 17:59           ` Andreas Dilger
2009-07-29 20:14           ` Eric Paris
2009-07-29 20:12         ` Eric Paris
2009-07-29 20:07       ` Eric Paris
2009-07-27 16:54   ` Jan Kara
2009-07-25 14:22 ` Niraj kumar
2009-07-29 20:08   ` Eric Paris
2009-07-28 11:48 ` Jon Masters
2009-07-29 20:20   ` Eric Paris
2009-08-03 16:23 ` Christoph Hellwig
2009-08-03 16:55   ` Eric Paris
2009-08-03 18:04     ` Christoph Hellwig
2009-08-03 18:13       ` Eric Paris
2009-08-04 16:09 ` Tvrtko Ursulin
2009-08-04 16:27   ` Eric Paris
2009-08-04 16:39     ` Tvrtko Ursulin
2009-08-04 17:22     ` Valdis.Kletnieks
2009-08-04 18:20       ` John Stoffel
2009-08-04 18:50         ` Eric Paris
2009-08-05  9:32         ` Tvrtko Ursulin
2009-08-04 16:34 ` Tvrtko Ursulin
2009-08-05 10:12   ` Douglas Leeder
2009-08-05 10:35   ` Douglas Leeder
2009-08-05  2:05 ` Pavel Machek
2009-08-05 16:46   ` Tvrtko Ursulin
2009-08-06 10:10     ` Pavel Machek
2009-08-06 10:20       ` Tvrtko Ursulin
2009-08-06 10:24         ` Pavel Machek
2009-08-06 10:20       ` Douglas Leeder
2009-08-06 10:22         ` Pavel Machek
2009-08-07  8:59           ` Jamie Lokier
2009-08-06 10:29         ` Peter Zijlstra
2009-08-06 10:59           ` Tvrtko Ursulin [this message]
2009-08-06 11:23             ` Peter Zijlstra
2009-08-06 12:48               ` Tvrtko Ursulin
2009-08-06 12:58                 ` Alan Cox
2009-08-06 18:18                   ` Eric Paris
2009-08-06 13:50               ` Kernel Event Notification Subsystem (was: fanotify - overall design before I start sending patches) Al Boldi
2009-08-06 18:18               ` fanotify - overall design before I start sending patches Eric Paris
2009-08-07 16:36                 ` Miklos Szeredi
2009-08-07 17:43                   ` Eric Paris
2009-08-08 10:36                     ` Pavel Machek
2009-08-10 10:03                     ` Miklos Szeredi
2009-08-08 10:34                 ` Pavel Machek
2009-08-06 11:24             ` Pavel Machek

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=200908061159.45550.tvrtko.ursulin@sophos.com \
    --to=tvrtko.ursulin@sophos.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=alexl@redhat.com \
    --cc=arjan@infradead.org \
    --cc=aviro@redhat.com \
    --cc=david@lang.hm \
    --cc=douglas.leeder@sophos.com \
    --cc=eparis@redhat.com \
    --cc=greg@kroah.com \
    --cc=hch@infradead.org \
    --cc=jcm@redhat.com \
    --cc=jengelh@medozas.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=malware-list@dmesg.printk.net \
    --cc=mmorley@hcl.in \
    --cc=mrkafk@gmail.com \
    --cc=pavel@ucw.cz \
    --cc=tytso@mit.edu \
    /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

all inboxes | Powered by JetHome®