Re: [PATCH] configfs, a filesystem for userspace-driven kernel object configuration

Matt Mackall
2005-04-05T06:42:15Z

On Sun, Apr 03, 2005 at 12:57:28PM -0700, Joel Becker wrote:
> Folks,
> I humbly submit configfs. With configfs, a configfs
> config_item is created via an explicit userspace operation: mkdir(2).
> It is destroyed via rmdir(2). The attributes appear at mkdir(2) time,
> and can be read or modified via read(2) and write(2). readdir(3)
> queries the list of items and/or attributes.
> The lifetime of the filesystem representation is completely
> driven by userspace. The lifetime of the objects themselves are managed
> by a kref, but at rmdir(2) time they disappear from the filesystem.
> configfs is not intended to replace sysfs or procfs, merely to
> coexist with them.
> An interface in /proc where the API is:
>
> # echo "create foo 1 3 0x00013" > /proc/mythingy
>
> or an ioctl(2) interface where the API is:
>
> struct mythingy_create {
> char *name;
> int index;
> int count;
> unsigned long address;
> }
>
> do_create {
> mythingy_create = {"foo", 1, 3, 0x0013};
> return ioctl(fd, MYTHINGY_CREATE, &mythingy_create);
> }
>
> becomes this in configfs:
>
> # cd /config/mythingy
> # mkdir foo
> # echo 1 > foo/index
> # echo 3 > foo/count
> # echo 0x00013 > foo/address
>
> Instead of a binary blob that's passed around or a cryptic
> string that has to be formatted just so, configfs provides an interface
> that's completely scriptable and navigable.

How does the kernel know when to actually create the object?

--
Mathematics is the supreme nostalgia of our time.