Re: [gamin] New inotify backend checked in



On Wed, 2005-08-03 at 03:33 -0400, Daniel Veillard wrote:
> On Tue, Aug 02, 2005 at 10:01:32PM -0400, John McCutchan wrote:
> > Yo,
> > 
> > I just checked in a complete rewrite of the inotify backend. This new
> > backend does not use the poll backend at all. This means that memory
> > usage of this new backend is much lower because we don't have to
> > maintain stat trees.
> 
>   Hum, I do not understand. I still expect that gamin will stop the
> kernel monitoring for busy resources (if not what flow control do you
> have at the kernel level to avoid continuously context-switching ?),
> and in that case you need to maintain the stat() information to report
> further changes or reenable kernel monitoring if not busy anymore.
> So I don't understand, can you explain ?
> 

No, this new backend does not provide flow control. The kernel has
simple flow control that works really well in the 'fast download
scenario'. The kernel just checks the last event queued if it's the same
as the one it is about to queue it drops the new event. Since at the
kernel level we are combining multiple sources of events into one queue,
we sometimes don't drop as many events as we could. So I have plans to
provide each connection/listener with an event queue and do the same
type of flow control.

> > CPU usage is much lower than the dnotify backend,
> > and slightly lower than the old inotify backend. This new backend passes
> > all the test suite tests except for dnotift15, and the flood tests. It
> > can't pass those tests because they rely on falling back on the poll
> > backend.
> 
>   We should make the flood tests check for the deactivation of the
> kernel monitoring, this could be different for inotify but this should
> still be done. I need to double check dnotify15.py for analysis.

Well, the inotify backend will never deactivate kernel monitoring.
Because I don't want to have to maintain the stat() trees. There are
quite a few dnotifyisms on the test suite. But, I have verified the
event stream in all the passing test cases. Could you run make tests
with the latest code (using the dnotify backend)?

-- 
John McCutchan <ttb tentacle dhs org>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]