ANNOUNCE: User-space System Device Enumation (uSDE)
From a pure technical point of view and from presentations made by the authors of u*** perspective
i think uSDE could add some interresting features like a customizable naming policy.
For instance: geographical addressing to identify devices using rack, subrack, slot numbers
seems possible.
I have not a good knowledge of the history of all these projects : udev, sysfs, /sbin/hotplug , devfs ...
But what could be needed is some references from one project to others it depends on or inherits.
I have read such a reference in Greg udev whitepaper and it is very helpfull to understand added values.
Eric
"Guo, Min" <[email protected]>@lists.osdl.org on 10/29/2003 06:12:26 AM
Sent by: [email protected]
To: "Greg KH" <[email protected]>, "Steven Dake" <[email protected]>
cc: [email protected],
[email protected], Lars Marowsky-Bree <[email protected]>, "Ling, Xiaofeng" <[email protected]>, Mark Bellon <[email protected]>, [email protected], [email protected]
Subject: [cgl_discussion] RE: ANNOUNCE: User-space System Device
Enumation (uSDE)
Here I try to summary out some difference for uSDE and uDEV,any comments are welcome!
In my opinion, competition is good and user can choose one they like because both of them
are user-space applications with a little minor kernel changes,is that right?
1.For the IDE/SCSI/PCI hotplug devices.
uDEV:
edit namedev.config manually to specify certain map,
if slot change or device change, user can re-edit namedev.config uSDE
record the id or slot at the first time, when move device to new slot or change to a new same type device,
automatically persist the name.
user can also specify map manually.
2.For non-hotplug device
uDEV:
not deal with it
uSDE
scan at boot time and also perform policy method. so when moved or
replaced devcie when the machine is
down, the name can also be persisted.
3. for multipath device.
uDEV
not support it.
uSDE
automatically detect mulitpath device and create md device. support hot add a new path and remove a path.
4. ethernet
uDEV
not deal with it
nameif
name interface based on MAC,
uSDE
can set map based on MAC, SLOT.
support both setting manually map and automatic processing support hotplug, eg. when exchange two device, the name can also be exchanged automatically.
.
5.devfs simulation
uDEV
No such function
uSDE
provide devfs simulation method.
From the above comparsion, we can see uSDE really have some advantages.As far maintaince,
I think that more codes don't mean lacking maintainability.
Thanks
Guo Min
Quoted 155 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]]On Behalf Of Greg KH
Sent: Wednesday, October 29, 2003 6:44 AM
To: Steven Dake
Cc: Lars Marowsky-Bree; Mark Bellon; [email protected]; [email protected]; [email protected]
Subject: Re: ANNOUNCE: User-space System Device Enumation (uSDE)Quoted 5 lines · Steven Dake
Quoted 4 lines · Lars Marowsky-Bree
Quoted 1 line · Mark Bellon
The uSDE and udev are simlar in some respects. The uSDE
allows for
Quoted 1 line
Quoted 1 line
Quoted 1 line
complete control of the policy handling a device - not
just its naming.
Quoted 2 lines
Quoted 2 lines
Well, so could udev in theory, and I had this plan to
enhance it to do
Quoted 1 line
Quoted 1 line
so for the specific case of multipathing one day in the
not too distant
Quoted 3 lines
Quoted 3 lines
future (ie, before q1/04).
In as far as I can see, udev and uSDE really do not have
too different
Quoted 1 line
Quoted 1 line
goals. Competition is good, but only if they explore
distinct approaches
Quoted 6 lines
Quoted 2 lines
;-)
There are several distinct approaches which have been enumerated in other mails.
Since this point has not been addressed, I'd like to focus
on the major
Quoted 3 lines
difference in philosophy.
SDE places all policy in the hands of the policy developer
in a seperate
Quoted 1 line
policy program. udev places the policies in the main
processing loop of
Quoted 1 line
the system, effectively implementing whatever policy is
desired by the
Quoted 1 line
udev maintainers.
What do you mean by "policy"?
If you are saying that SDE allows programmers the ability to write new programs to plug into your framework to create new types of policies, then I understand that. Your loadable plugins look like they support that. But they require a dynamic loader :)
What udev is doing is trying to provide a flexible policy that will work
for everyone, with a heirchy of rules that can be easily controlled and
changed by anyone who can operate a text editor (and soon to be changed
by GUI applications, like the HAL project).I have not heard of any situation in which the current udev set of rules
do not work out for them. And if you can think of one, can't it be covered by the CALLOUT rule? For example, someone has sent me a small userspace program that works with the CALLOUT rule that handles multipath devices by talking to the dm code. Now that's pretty flexible.If you (or anyone else) thinks of something that the existing udev rules
do not handle, please let me know. If it's too complex, then yes, the user should use write their own SDE plugin. But remember, 99.9% of the
people out there just want the LSB device names, with possibly a persistent entry for their digital camera and USB joystick, which udev handles just fine today.For people with 4000 real scsi disks, udev also works well. That seems
to cover the wide range of users.Quoted 2 lines
Without seperating policies from the core executive of device naming system, the core of udev suffers from the same issues as
placing policy
Quoted 1 line
in the kernel suffers. Lack of maintainability, lack of
user-defined
Quoted 1 line
functionality, bloat, etc.
Easy Separation? Hm, in looking at udev, if you just replace 2 .c files
with your new naming scheme, everything works just fine.And if you want to go down the path of accusations about lack of maintainability, bloat, etc. I will be glad to point people at your tree
and then they can see these kinds of numbers:For SDE:
$ find . -type f | egrep '[.c|.h]$' | xargs wc -l | tail -1 57328 totalWow, you build 18 shared libraries:
$ find . -type f | grep '\.so' | wc 18 18 625For udev:
$ find . -type f | egrep '[.c|.h]$' | xargs wc -l | tail -1 17632 totalAnd that includes all of klibc, which really is not fair for udev to calculate. So let's just look at the udev code size:
$ ls | egrep '[.c|.h]$' | xargs wc -l | tail -1 2613 totalAnd to be complete, let's add the totals of libsysfs and tdb, but to be
fair any udev developer never has to look into those files:libsysfs is this big:
3798 totalAnd tdb is this big:
2679 totalSo adding those numbers up we get these kinds of numbers for size of the
.c and .h files in the different projects:SDE: 57328 lines udev: 9090 linesThat makes SDE over 6 times bigger in source code alone than all of udev (including tdb and libsysfs).
I can compare executable size too, if you really want to still claim that udev is suffering from "lack of maintainability and bloat" if you really want :)
Oh, any reason you all haven't shown a working uSDE system in public anywhere?
thanks,
greg k-h
p.s. yes, I know lines of code is a horrible metric, and doesn't really
mean squat. I just want to point out the huge size difference between the current state of udev and SDE, with pretty much identical functionality from what I can tell.
Quoted 10 lines
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
_______________________________________________cgl_discussion mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/cgl_discussion
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Quoted 6 lines · On Wed, Oct 29, 2003 at 05:20:01PM +0100, [email protected] wrote:
Quoted 3 lines
From a pure technical point of view and from presentations made by the
authors of u*** perspective
i think uSDE could add some interresting features like a customizable naming policy.
udev doesn't provide such a feature right now?
Quoted 2 lines
For instance: geographical addressing to identify devices using rack, subrack, slot numbers seems possible.
Sure, udev can do that today, if you have a way of identifying devices in such a manner.
thanks,
greg k-h
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
On Wed, Oct 29, 2003 at 11:04:21AM -0800, Greg KH wrote:
<huge snip>
Quoted 2 lines
In the interest of full disclosure, Min is one of the SDE authors, and I am one of the udev authors.
man... I saw this thread and thought there is no way in hell I am jumping in this bloody mess. oh well...
...and I told Min to help out on usde.
Quoted 5 lines
Min, maybe you can answer why Intel has spent effort on this project instead of offering to help udev, which has been public for a long time now?
I have never believed that any one implementation of (in CGL speak) "persistent device naming" would be palatable by everyone, and have no problem in donating some resources toward udev.
In the past we experimented with udev, and even did a little work on sysfsutils (which I though udev was using, but looking at udev-005 I still see the libsysfs directory.)
I see the the TODO list in udev-005. Are all these items wide open, or have people already spoken for some parts? Maybe you have a couple of items you consider higher priority?
--rustyl
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
Quoted 4 lines · Rusty Lynch
In the past we experimented with udev, and even did a little work on sysfsutils (which I though udev was using, but looking at udev-005 I still see the libsysfs directory.)
Yes, udev uses libsysfs, and your (Intel's) help on libsysfs is greatly appreciated.
Quoted 3 lines
I see the the TODO list in udev-005. Are all these items wide open, or have people already spoken for some parts? Maybe you have a couple of items you consider higher priority?
Hm, some of those things on the TODO list are already done (latest libsysfs, man page, and a few others.) But no, they are all pretty much wide open, feel free to jump in with whatever you feel like helping out with.
thanks,
greg k-h
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel