Linux 2.6.36 Released 238
diegocg writes "Version 2.6.36 of the Linux kernel has been released. This version includes support for the Tilera architecture, a new filesystem notification interface called fanotify, CIFS local caching, support for Intel Intelligent Power Sharing in i3/5 systems, integration of the kernel debugger and KMS, inclusion of the AppArmor security system, a redesign of workqueues optimized for concurrency, and several new drivers and small improvements. See the full changelog here for more details."
Whether a file has changed = complex? (Score:5, Interesting)
What the hell is it with file notification? It never seems to be reliable or stable. There was inotify, dnotify, fsnotify, fam, gamin, incrond... and since fam/gamin always ended up using 100% CPU or causing other problems, I've just avoided the whole idea, even though I regularly think of situations that I could use incrond in.
I would have thought that setting a flag/triggering an event when a file was altered would be a matter of adding a small queue/bit system for events and about one line of code to vfs functions that modify files, but obviously not.
So... does anyone use incrond and get good, reliable results? Will fanotify help at all?
Compressed RAM? (Score:3, Interesting)
Re:Whether a file has changed = complex? (Score:2, Interesting)
I've used incron on production boxen heavily over the past couple years and haven't noticed any problems with it, personally.
fanotify looks pretty sweet, though. Eric Paris made a sort of introductory post about it last year, which is a good read:
http://lkml.org/lkml/2009/7/24/242 [lkml.org]
Particularly interesting is his idea of adding 'rename' events. This would mean you could implement something like 'updatedb' in realtime, and always have current results for 'locate'. Not sure if the rename events made it in or not, still digging around.
Re:Whether a file has changed = complex? (Score:5, Interesting)
fanotify seems interesting because it allows you to watch for arbitrary events on a global basis without specifying which file descriptors you want to watch. It seems to pass the actual file descriptor back to the original object. You read events via getsockopt().
So, for example, it's very easy to say "notify me of all file open events", for example.
You can also do the opposite of a global watch, of course, and have it watch for specific file events, much like inotify.
As I understand it, fanotify came about because of vendor demand for an efficient, non-hackish way to watch for arbitrary filesystem events without ever specifying precise files, paths, etc. An example would be malware vendors.
Re:And yet? (Score:5, Interesting)
No, the problem isn't incompleteness it's the fact that one has to traverse a jungle of incompatible audio and video APIs to make sure it even works at all across the various distributions.
Then how come mplayer works on every common Linux distribution, and has been able to do smooth fullscreen video for as long as I can remember?