Re: PATCH: Multiprobe sanitizer

From: Alan Cox
Date: Wed Aug 16 2006 - 20:13:17 EST


Ar Mer, 2006-08-16 am 15:26 -0700, ysgrifennodd Greg KH:
> What would this help out with? Would the PCI layer (for example) handle
> this "notify the core that it can continue" type logic? Or would the
> individual drivers need to be able to control it?
>
> I'm guessing that you are thinking of this in relation to the disk
> drivers, have you found cases where something like this is necessary due
> to hardware constraints?

Actually it occurs everywhere because what happens is

PCI enumerates in bus order
Threads *usually* run in bus order

so every n'th boot your devices re-order themselves out of bus order,
and eth1 becomes eth0 for the day.

If you have a "ok now continue scanning" API then we can do

Grab resources
Register driver
Go parallel
[Slow stuff]

I was thinking if we set multithread = 2 (and define some constants)
then the core code would do

if (multithread == WAIT)
down(&drv->wait);


and we'd have

pci_driver_continue_enumerating(struct pci_driver *drv) {
up(&drv->wait);
}


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/