June 25th, 2011

What did Linus mean?

I trolled Jeff Darcy into railing for FUSE by pointing out a quote from Linus:

People who think that userspace filesystems are realistic for anything but toys are just misguided.

The pronouncement was made in context of overlayfs. And it looks like everyone who chirped in is concerned with the speed, rather than nasty implementation details. I do suspect though that Linus meant something else than the syscall overhead, even if the magic mlock() takes care of the most obvious deadlocks. Maybe we should ask Al Viro if FUSE has any deep-seaing issues with directory renames or whatnot.

Darcy, BTW, hasn't learned Linus' stealthy ways and falls for his "I'm just a community manager anymore" line. He asked "since when has [Linus] understood anything about storage" and called Linus an "ideologue". But I remember well a couple of cases when best and brightest in kernel were stumped, until Linus gave up on waiting and fixed the problem. One such had something to do with some ptrace thing or other and it was a pretty bad firedrill. He demonstrated a sharp understanding of VM issues, too. I'm pretty sure that if Linus says so, there were issues with userland filesystems that their partisans gloss over or even fail to grasp altogether.

Oh, and finally... I'm pretty sure that userland filesystems work just fine in network environments or when parallel access is arbitrated outside of VFS. I mean, just look at GoogleFS. Heck, you probably can implement a great Gluster node in userland of Windows or FreeBSD. Who cares what's in the black box?

UPDATE: The "official response" from Anand Babu of Gluster is LOL: "GlusterFS got its inspiration from the GNU Hurd kernel."