On Wednesday 19 September 2007, Andrew Morton wrote:
One key difference between any of the numerous legacy RTC drivers
and the new framework is that the legacy drivers tended to think
(wrongly!) they would be the only RTC in the system, while the
framework recognizes that other configurations are important.
Hence names "rtc0", "rtc1", "rtc2" ... etc in framework drivers,
versus just "rtc" in legacy code. Easily tweaked with "udev" if it
matters, but current versions of "hwclock" (in util-linux and also
in busybox) don't require a /dev/rtc file any more ... they check
for /dev/rtc0, and can be told to look at other RTCs too.
Not so much an "error" as minor awkwardness. The end result is
that only one driver will be active.
Not at all. But if two chunks of code try to create /proc/x/y/z,
only one of them should succeed. Today, there's a clear bug in
procfs whereby both of them will succeed...
Then nothing gets stored there; procfs is nonessential. The same
code executes as when creating the /proc/x/y/z file fails.
But causing duplicated names doesn't need any "fix" when that code
handles the error sanely -- by using its "PROCFS=n" code paths.
If you're arguing that you think such fault handling code may have
a lot of bugs, I might agree: not all fault handling code gets even
basic testing. But that would seem to be nothing more than a reason
to want some code auditing (to see how common such bugs really are,
and fix at least a few of them), and perhaps to let such bugfixes sit
in a moderately well-exposed testing tree for a while.
Evidently there's no procfs maintainer ... you've said there are
patches in MM to detect and report such duplication. What is it
turning up?
The last time I had occasion to look at such stuff I observed that procfs
users were generally sane. If they couldn't create a file, they just
continued ... after all, procfs can never be the primary interface.
Erroring out is appropriate for fatal errors ... but procfs errors
generally can't be fatal. (Code which uses procfs for its primary
userspace interface would be the exception.) So most code should
never error out on such faults.
As I commented above, most code I've happend across will proceed
just fine if the extra procfs support is unavailable. After all,
it needs to work with CONFIG_PROCFS=n so those code paths aren't
going to suddenly stop working!
- Dave
-