lkml.org 
[lkml]   [2006]   [Oct]   [28]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    /
    DateFri, 27 Oct 2006 22:19:25 -0700
    FromAndrew Morton <>
    SubjectRe: [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/
    
    
    \
     
     \ /
      Last update: 2006-10-28 05:25    [from the cache]
    ©2003-2008