From: Alexey Morozov <alex-hp@idisys.iae.nsk.su>
To: linux-hotplug@vger.kernel.org
Subject: Re: Several fixes and enhancements for extented naming rules parameters
Date: Sat, 08 Jan 2005 08:34:39 +0000 [thread overview]
Message-ID: <41DF9B1F.1010300@idisys.iae.nsk.su> (raw)
In-Reply-To: <41DEC1E2.3060806@idisys.iae.nsk.su>
Kay Sievers writes:
>On Fri, 2005-01-07 at 23:07 +0600, Alexey Morozov wrote:
>
>
>>Playing with udev naming rules, I notices that existing '%e' macro can't
>>be really used in several cases (important at least for me).
>>
>>
>
>Please explain the several cases!
>
>
Well, I tried to describe them below in that letter, right? I can show
you entire contents of /dev on my workstation.
>>This
>>'extended' macro is quite useful if e.g. we try to build nice
>>"human-friendly" device naming scheme and strictly separate devices
>>names and permissions assignment (to rules.d/* and permissions.d/*
>>respectively)
>>
>>
>
>permissions.d/ is gone. We have the permissions in the rules file form
>the next version on.
>
>
Hmm, well, maybe it's a good idea, but I doubt it can increase
maintainability of udev setups. But perhaps I'm wrong, I need to think a
bit about possible consequences and undestand how things change in this
case.
>>First of all, if one tries to give several names to a device (say,
>>create additional symlinks for a CD-RW device like /dev/cdrom,
>>/dev/cdwriter) udev ends up w/ errors.
>>
>>
>
>What kind of errors? Please explain!
>
>
Sure. Existing 'if such a name already assigned by udev to a device'
code works poorly if e.g. _several_ symlinks are to be considered. It
simply doesn't split entire string SYMLINK="a_name1 another_name2 ...
generic_name%e" into tokens and therefore can't really check if
corresponding /dev/generic_name* etc are already assigned to some
devices. You may try it yourself.
>>Also I really doubt if %e w/ existing rules processing code can be used
>>in constructions like /dev/discs/disc%e/disc and other devfs-like naming
>>schemes.
>>
>>
>
>Yes, this doesn't work, but the scripts can do this, right?
>
>
Please see the answer below.
>>So I decided to patch it a bit to achieve such functionality. You can
>>find this patch in the attachment.
>>
>>Also I'd like to have another macro. While %e is substituted w/ nothing for
>>'mydevice%e' if /dev/mydevice doesn't exist yet, this new macro always
>>substituted w/ a non-negative number. I called it %N, but in fact these
>>names can be changed in future. This is particularly useful for names
>>like /dev/discs/disc%N/{.....} and allows to simplify devfs-like naming
>>scripts.
>>
>>
>
>Is there really the need to move this into udev? What is the limitation
>of the scripts?
>
>
Speed. Complexity. As you may notice, I mostly re-used existing udev
code in these patches. W/ a "pure scripts" solution I would had to do
all the things from scratch. I looked at existing udev supporting
scripts (from debian, gentoo and Mdk) and found that they works really
harder than my code to achieve corresponding or even lesser level of
functionality (at least in implementing equivalents of those 'extended
attributes' like '%e').
Sure namedev stuff can probably be taken out of main udev binary. But
in any case a stateless script which has to calculate everything it
needs to form a name each time it's launched, well, that script will be
more complex and slow than a solution w/ a binary and pre-built database
in a convenient format.
BTW, my current /dev/.udevdb eats ~2.8Mb of space (/dev is on tmpfs) on
an ordinary workstation w/o much hardware plugged in. Is that intended
result? ;-) Are there plans to change its format? Now it's a lot, ~700
files, each 40-50 bytes long. I guess smth like a berkeley db will be
more appropriate in this case, but I'm not sure if it's a good idea to
take even statically linked db1 to Early User Space stuff. Maybe
there're some other workarounds for the problem?
There's another little problem to be considered. E.g. I noticed that
sda1 creation event for my flash drive often comes when entire sda event
hasn't been processed completely yet. So we have to deal w/ such
concurrency, and I really believe that C provides better tools and
techniques for that than bash-programming.
>>Also I made a patch for (optional) compilation of udev w/ a system-wide
>>installed sysfs libraries. I'm not sure it's a good idea 'for everyone'
>>but if we anyway have libsysfs and it's fresh enough to seamlessly work
>>w/ udev, I don't see any reasons to have a separate copy right in udev
>>source tree. Probably I make a mistake, but it worked /for me/ so far,
>>and hey, it's optional anyway.
>>
>>
>Does this work with the klibc build, which cannot use the system
>installed version of sysfs?
>
>
Well, it's just a linker flag. Instead of explicitly link
libsysfs/sysfs.a, it can pass to the linker anything from $(SYS_SYSFS).
It can be -lsysfs, or just a /usr/lib/libsysfs.a if one wants. So the
answer is yes, it works if we build udev on a system w/ an appropriate
libsysfs installed.
Yours faithfully,
Alexey Morozov
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next prev parent reply other threads:[~2005-01-08 8:34 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-07 17:07 Several fixes and enhancements for extented naming rules parameters Alexey Morozov
2005-01-08 5:11 ` Several fixes and enhancements for extented naming rules Kay Sievers
2005-01-08 8:34 ` Alexey Morozov [this message]
2005-01-08 14:53 ` Several fixes and enhancements for extented naming Kay Sievers
2005-01-10 8:37 ` Several fixes and enhancements for extented naming rules parameters Alexey Morozov
2005-01-10 12:03 ` Several fixes and enhancements for extented naming rules Kay Sievers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41DF9B1F.1010300@idisys.iae.nsk.su \
--to=alex-hp@idisys.iae.nsk.su \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).