There's been a lot of discussion about future driver model rework. Here's what I think is the current plan:

The 2.6.15 kernel release will have the following changes:

  • class devices can be nested, but must be owned by the same class.
  • input subsystem is converted to dynamically handle devices.
  • input subsystem is converted to use new nested class devices.
  • we create a symlink in the root of the class to any nested class devices so that programs like udev and others still have a chance to work properly now, and in the future.
  • the 071 version of udev is required as it broke with the symlink changes (my word is libsysfs dumb at times...)

All of the above is done, in the -mm tree, and the needed udev version has been released.

For the future, here is what is going to happen:

  • struct class device is going to merge with struct device and show up in the main /sys/devices tree, as that's where it should all go.
  • /sys/class/foo/ will just contain directories of symlinks to the location in the /sys/devices/ tree of where those devices are. This will keep anything from breaking in userspace (unless we find some other horrible bug in libsysfs in udev...)
  • when doing the above, slim down kobject/kset/subsystem/attributes to make them easier to use as there are a lot of duplicated chunks of code floating around, and now we know how all of this is going to work. (we get to throw away our second version of all of this and go for the third one. Like always. And yes, this is the second version, 2.5 had version one and you don't want to remember what that looked like...)
  • also when doing the above, fix the apis so they get higher up Rusty's "api scale" of usability. Right now it's just too easy to get it all wrong (like Neal is finding out right now with his kobject work.)
  • And document things better (kerneldoc is the way to go.) I'll try to merge in the LDD3 chapter about the driver model too, as that's a good place to start with.
  • And of course, everything is subject to change.

All of this will be hopefully be done without breaking any userspace stuff, and any in-kernel code (out of kernel stuff is fair game, although I doubt it will affect them, as everything is marked _GPL today anyway so no one uses it directly.)

And this is the last time I mention to Kay, "I don't know what I'm going to be working on in the future, you have any ideas?"

posted Thu, 27 Oct 2005 in [/linux]


My Linux Stuff