Re: [GIT] Bcache version 12
From: Kent Overstreet <hidden>
Date: 2011-09-15 21:33:36
Also in:
linux-fsdevel, lkml
On Thu, Sep 15, 2011 at 2:15 PM, Dan Williams [off-list ref] wrote:
On Sun, Sep 11, 2011 at 6:44 PM, Kent Overstreet [off-list ref] wrote:quoted
On Sun, Sep 11, 2011 at 07:35:56PM -0600, Andreas Dilger wrote:quoted
On 2011-09-11, at 1:23 PM, Kent Overstreet [off-list ref] wrote:quoted
I don't think that makes any more sense, as module paramaters AFAIK are even more explicitly just a value you can stick in and pull out. /sys/fs/bcache/register is really more analagous to mount().... and you looked at module_param_call()?
Damn, nope. I still think a module parameter is even uglier than a sysfs file, though. As far as I can tell, the linux kernel is really lacking any sort of coherent vision for how to make arbitrary interfaces available from the filesystem. We all seem to agree that it's a worthwhile thing to do - nobody likes ioctls, /proc/sys has been around for ages; something visible and discoverable beats an ioctl or a weird special purpose system call any day. But until people can agree on - hell, even come up with a decent plan - for the right way to put interfaces in the filesystem, I'm not going to lose much sleep over it.
quoted
I looked into that many months ago, spent quite a bit of time fighting with the dm code trying to get it to do what I wanted and... no. Never againDid you do a similar analysis of md? I had a pet caching project that had it's own sysfs interface registration system, and came to the conclusion that it would have been better to have started with an MD personality. Especially when one of the legs of the cache is a md-raid array it helps to keep all that assembly logic using the same interface.
I did spend some time looking at md, I don't really remember if I gave it a fair chance or if I found a critical flaw. I agree that an md personality ought to be a good fit but I don't think the current md code is ideal for what bcache wants to do. Much saner than dm, but I think it still suffers from the assumption that there's some easy mapping from superblocks to block devices, with bcache they really can't be tied together.
And md supports assembling devices via sysfs without requiring mdadm which is a nice feature.
Didn't know that, I'll have to look at that. If nothing else consistency is good...
Also has the benefit of reusing the distro installation / boot enabling for md devices which turned out to be a bit of work when enabling external-metadata in md.
Dunno what you mean about external metadata, but it would be nice to not have to do anything to userspace to boot from a bcache device. As is though it's only a couple lines of bash you have to drop in your initramfs.