Re: Is configfs the right solution for configuration based fs?

From: Johannes Berg
Date: Tue Jun 10 2008 - 04:02:35 EST


On Tue, 2008-06-10 at 10:12 +1000, Ben Nizette wrote:
> On Mon, 2008-06-09 at 11:03 +0200, Johannes Berg wrote:
>
> > Personally, I have a few issues with this:
> > 1) why bother with a second configuration interface that we have to
> > maintain, adjust, ...? if we need scriptable access, then make a
> > good userspace tool that is scriptable.
>
> What's the first one, sysfs..? ioctl (eww..)?

netlink.

> > 2) string-based stuff is often messy, especially the varying attributes
> > like MAC addresses etc. Unless we just use binary files again, which
> > is not very useful again. Take, for example, the monitor flags. If
> > we use the same flags then nobody really knows what's up
> > (echo 0x3 > mntr_flags?) and if we use strings then we cannot easily
> > ever rename the flag while keeping ABI/API compatibility.
>
> Not sure I see the argument here, why would you want to change the flag
> name? If you decide the old name is stupid then can't you just alias
> the old name to the new one?

Sure can do, but it just adds a lot of complexity to the kernel. I don't
see the point, it's not like you need a lot of code to build netlink
messages. Heck, I've done it by _hand_ and used just netlink sockets.
It's not a lot of code.

> String handling is always a bit iffy, though it has to be done
> somewhere, either in kernel or in your "good userspace tool which is
> scriptable". I'd prefer to have it done once, well, in the kernel and
> not have to ship more software than necessary.

I personally prefer to put it into userspace.

> > 3) afaik configfs doesn't actually support the mkdir, ... stuff yet
> > that you want for virtual interfaces.
>
> It has all the mkdir stuff I can think of, can you elaborate? It
> doesn't have the commitable object support but I just have an 'enabled'
> attribute in there to switch the thing on and off.

I don't remember the specifics, it's been a while, I guess I could be
thinking of the commitable object support; mostly we'd want to configure
many things in one go, even on a live object. Without disabling that
object first, obviously.

johannes

Attachment: signature.asc
Description: This is a digitally signed message part