Messages in this thread | | | Date | Fri, 27 Oct 2006 22:19:25 -0700 | From | Andrew Morton <> | Subject | Re: [patch] drivers: wait for threaded probes between initcall levels |
| |
On Fri, 27 Oct 2006 23:09:05 -0600 Grant Grundler <grundler@parisc-linux.org> wrote:
> On Fri, Oct 27, 2006 at 04:06:26PM -0700, Andrew Morton wrote: > > On Fri, 27 Oct 2006 23:59:30 +0100 > > Alan Cox <alan@lxorguk.ukuu.org.uk> wrote: > > > > > Ar Gwe, 2006-10-27 am 11:42 -0700, ysgrifennodd Andrew Morton: > > > > IOW, we want to be multithreaded _within_ an initcall level, but not between > > > > different levels. > > > > > > Thats actually insufficient. We have link ordered init sequences in > > > large numbers of driver subtrees (ATA, watchdog, etc). We'll need > > > several more initcall layers to fix that. > > > > > > > It would be nice to express those dependencies in some clearer and less > > fragile manner than link order. I guess finer-grained initcall levels > > would do that, but it doesn't scale very well. > > Would making use of depmod data be a step in the right direction?
Nope. The linkage-order problem is by definition applicable to linked-into-vmlinux code, not to modules.
> ie nic driver calls extern function (e.g. pci_enable_device()) > and therefore must depend on module which provides that function. > > My guess is this probably isn't 100% sufficient to replace all initcall > levels. But likely sufficient within a given initcall level. > My main concern are circular dependencies (which are rare).
The simplest implementation of "A needs B to have run" is for A to simply call B, and B arranges to not allow itself to be run more than once.
But that doesn't work in the case "A needs B to be run, but only if B is present". Resolving this one would require something like a fancy "synchronisation object" against which dependers and dependees can register interest, and a core engine which takes care of the case where a depender registers against something which no dependees have registered.
The mind boggles.
> > But whatever. I think multithreaded probing just doesn't pass the > > benefit-versus-hassle test, sorry. Make it dependent on CONFIG_GREGKH ;) > > Isn't already? :) > > I thought parallel PCI and SCSI probing on system with multiple NICs and > "SCSI" storage requires udev to create devices with consistent naming.
For some reason people get upset when we rename all their devices. They're a humourless lot.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |