1 |
On Sun, Sep 29, 2013 at 12:36:43AM +0200, Alan McKinnon wrote |
2 |
|
3 |
> The actual problem is better stated something like this: |
4 |
> |
5 |
> In the early stages of user-land setup (around the time when udev is |
6 |
> getting it's act together), arbitrary code can run and that code can be |
7 |
> in any arbitrary place, but there is no guarantee that that code is even |
8 |
> accessible at the point when it is needed. The actual cause of this mess |
9 |
> is the lack of standards on where to put stuff on Linux systems, and it |
10 |
> forms a classic bootstrap problem. |
11 |
> |
12 |
> There has only ever been one way around that problem - define an exact |
13 |
> entry point that is guaranteed to be in a specific state. For current |
14 |
> userland this effectively means that everything that has traditionally |
15 |
> been in bin, sbin and lib in / and /usr must be available as step 1. |
16 |
> Technically, you could include /var/lib/ and maybe even /opt in there. |
17 |
> but we can safely exclude those at this time as only a brain-dead moron |
18 |
> would ever put init-critical code there. |
19 |
|
20 |
Separate /usr worked for many years, even with udev. The question I |
21 |
have is why is udev *NOW* monkeying around with a whole bunch of |
22 |
additional stuff before mounting partitions? If you have an NFS-mounted |
23 |
/usr, I can see needing to have network services running first. Ditto |
24 |
for /usr being in an LVM or encrypted partition, you need LVM and/or |
25 |
decryption running first. There is no excuse for anything else breaking |
26 |
a separate /usr. |
27 |
|
28 |
Then again, separate /usr isn't the first thing Kay Sievers has broken |
29 |
since he took over udev, and I wouldn't be surprised if he one day "just |
30 |
happens to break openrc"... |
31 |
|
32 |
https://lkml.org/lkml/2012/10/2/303 |
33 |
|
34 |
> From Linus Torvalds <> |
35 |
> Date Tue, 2 Oct 2012 09:33:03 -0700 |
36 |
> Subject Re: udev breakages - was: Re: Need of an ".async_probe()" |
37 |
> type of callback at driver's core - Was: Re: [PATCH] [media] drxk: |
38 |
> change it to use request_firmware_nowait() |
39 |
|
40 |
|
41 |
> On Tue, Oct 2, 2012 at 6:03 AM, Mauro Carvalho Chehab |
42 |
> <mchehab@××××××.com> wrote: |
43 |
> |
44 |
> > I basically tried a few different approaches, including deferred |
45 |
> > probe(), as you suggested, and request_firmware_async(), as Kay |
46 |
> > suggested. |
47 |
> |
48 |
> Stop this crazy. FIX UDEV ALREADY, DAMMIT. |
49 |
> |
50 |
> Who maintains udev these days? Is it Lennart/Kai, as part of systemd? |
51 |
> |
52 |
> Lennart/Kai, fix the udev regression already. Lennart was the one |
53 |
> who brought up kernel ABI regressions at some conference, and if |
54 |
> you now you have the *gall* to break udev in an incompatible manner |
55 |
> that requires basically impossible kernel changes for the kernel to |
56 |
> "fix" the udev interface, I don't know what to say. |
57 |
> |
58 |
> "Two-faced lying weasel" would be the most polite thing I could say. |
59 |
> But it almost certainly will involve a lot of cursing. |
60 |
> |
61 |
> > However, for 3.7 or 3.8, I think that the better is to revert |
62 |
> > changeset 177bc7dade38b5 and to stop with udev's insanity of |
63 |
> > requiring asynchronous firmware load during device driver |
64 |
> > initialization. If udev's developers are not willing to do that, |
65 |
> > we'll likely need to add something at the drivers core to trick |
66 |
> > udev for it to think that the modules got probed before the probe |
67 |
> > actually happens. |
68 |
> |
69 |
> The fact is, udev made new - and insane - rules that are simply |
70 |
> *invalid*. Modern udev is broken, and needs to be fixed. |
71 |
> |
72 |
> I don't know where the problem started in udev, but the report I |
73 |
> saw was that udev175 was fine, and udev182 was broken, and would |
74 |
> deadlock if module_init() did a request_firmware(). That kind of |
75 |
> nested behavior is absolutely *required* to work, in order to not |
76 |
> cause idiotic problems for the kernel for no good reason. |
77 |
> |
78 |
> What kind of insane udev maintainership do we have? And can we fix it? |
79 |
|
80 |
-- |
81 |
Walter Dnes <waltdnes@××××××××.org> |
82 |
I don't run "desktop environments"; I run useful applications |