On 03/21, Linus Torvalds wrote: > > On Fri, Mar 21, 2014 at 11:34 AM, Oleg Nesterov <o...@redhat.com> wrote: > > > > Yes, it seems that it actually needs > 30 secs. It spends most of the time > > (30.13286 seconds) in [..] > > So how about taking a completely different approach:
Due to the lack of knowledge I can not comment (or even actually understand) your suggestion. But it probably falls into the "right fix" category, iow "THE FIX FROM MAINTAINERS" the temporary sigprocmask() hack should wait for. I can't implement this by the same reason. And of course I won't insist that we need some really stupid (and wrong) solution until someone who understand makes the initialization asynchronous. > - just say that waiting for devices in the module init sequence for > over 30 seconds is really really wrong. > > - make the damn mptsas driver just register the controller from the > init sequence, and then do device discovery asynchronously. > > The ATA layer does this correctly: it synchronously finds each host, > but then it does > > /* perform each probe asynchronously */ > for (i = 0; i < host->n_ports; i++) { > struct ata_port *ap = host->ports[i]; > async_schedule(async_port_probe, ap); > } > > and I really think SCSI drivers should do the same if they have this > kind of "ports can take forever to probe" behavior. > > What would be the equivalent magic to do this for SCSI? Could we just > make something like scsi_probe_and_add_lun() just always do this, the > same way ata_host_register() does it? > > Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/