All of lore.kernel.org
 help / color / mirror / Atom feed
From: Phillip Susi <psusi@cfl.rr.com>
To: david@lang.hm
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	Adrian Bunk <bunk@stusta.de>, Greg K-H <greg@kroah.com>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: Please revert 5adc55da4a7758021bcc374904b0f8b076508a11 (PCI_MULTITHREAD_PROBE)
Date: Wed, 09 May 2007 18:21:23 -0400	[thread overview]
Message-ID: <46424963.7070209@cfl.rr.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0705081314440.29403@asgard.lang.hm>

david@lang.hm wrote:
> is it really enough to do the sync followed by the async piece?
> 
> it seems to me that there may be a need for three steps
> 
> 1. prep (sync, what we do today)
> which will all complete before
> 2. parallel (async)
> which will all complete before
> 3. cleanup (sync)

I agree.  Considering the particular case of scsi disks, you want to do 
the long INQUIRY command to probe each target in phase 2, so that this 
time consuming step can be done in parallel between multiple scsi 
busses.  After the INQUIRY though, you have to register with the scsi 
layer and assign it a minor number and so on, and this you want to do 
with some predictability, so you need to do this in phase 3.

Take a hypothetical system containing a PCI bus with a video card and 
two scsi cards in it, and each scsi bus has a hard disk on it.  The 
sequence would go:

1) PCI Bus invokes phase 1 on video card, scsi a, scsi b, in that order
2) PCI Bus invokes phase 2 on video card, scsi a, scsi b, each in their 
own thread
2.1) video card uploads firmware
2.2) scsi bus A issues INQUERY commands to each target to detect devices
2.3) scsi bus B issues INQUERY commands to each target to detect devices
3) PCI Bus invokes phase 3 on video card, scsi a, scsi b, in that order
3.1) video card registers with the frame buffer layer
3.2) scsi bus A registers its detected disk with the scsi layer
3.3) scsi bus B registers its detected disk with the scsi layer


Because 3.2 and 3.3 always happen in order, /dev/sda will stay /dev/sda 
even if 2.3 finishes before 2.2.  Likewise if you add a new video card 
to PCI slot 4 which does not require a firmware upload, it will not 
displace the existing video card from /dev/fb0 because phase 3 will take 
place for the first card first, even if phase 2 completed first on the 
new card.


  parent reply	other threads:[~2007-05-09 22:21 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-08 13:37 Please revert 5adc55da4a7758021bcc374904b0f8b076508a11 (PCI_MULTITHREAD_PROBE) Cornelia Huck
2007-05-08 14:07 ` Greg KH
2007-05-08 20:58   ` David Miller
2007-05-09  9:44     ` Greg KH
2007-05-09 17:21       ` Linus Torvalds
2007-05-08 14:11 ` Adrian Bunk
2007-05-08 14:41   ` Cornelia Huck
2007-05-08 15:27   ` Linus Torvalds
2007-05-08 16:38     ` Cornelia Huck
2007-05-08 16:47       ` david
2007-05-08 21:45         ` Stefan Richter
2007-05-08 18:30       ` Linus Torvalds
2007-05-08 19:21         ` Cornelia Huck
2007-05-08 19:31           ` Linus Torvalds
2007-05-08 20:01             ` Linus Torvalds
2007-05-08 20:26               ` david
2007-05-09  7:58                 ` Cornelia Huck
2007-05-09  8:33                   ` david
2007-05-09  9:15                     ` Cornelia Huck
2007-05-09  9:25                       ` david
2007-05-09 13:20                         ` Cornelia Huck
2007-05-09 16:18                           ` david
2007-05-09 17:07                             ` Cornelia Huck
2007-05-09 17:09                               ` david
2007-05-09 17:48                                 ` Cornelia Huck
2007-05-09 17:53                                   ` david
2007-05-09 18:36                                     ` Cornelia Huck
2007-05-09 18:52                                       ` david
2007-05-10  7:38                                         ` Cornelia Huck
2007-05-09 17:07                             ` Greg KH
2007-05-09 17:25                               ` Linus Torvalds
2007-05-09  9:30                       ` Stefan Richter
2007-05-09 22:21                 ` Phillip Susi [this message]
2007-05-09 22:37                   ` Stefan Richter
2007-05-10 14:23                     ` Phillip Susi
2007-05-10 14:55                       ` Stefan Richter
2007-05-11  7:22                         ` Cornelia Huck
2007-05-08 20:51               ` Cornelia Huck
2007-05-08 21:41               ` David Miller
2007-05-09  9:55                 ` Greg KH
2007-05-09  8:14               ` Duncan Sands
2007-05-09  8:45                 ` Cornelia Huck
2007-05-09  9:16                   ` Duncan Sands
2007-05-09 12:37                     ` Cornelia Huck
2007-05-08 20:36             ` Cornelia Huck
2007-05-09  9:53       ` Greg KH
2007-05-09 13:38         ` Cornelia Huck
2007-05-09 16:42           ` Greg KH
2007-05-09 16:50             ` david
2007-05-09 17:14               ` Cornelia Huck
2007-05-09 17:09             ` Linus Torvalds
2007-05-08 21:15     ` David Miller
2007-05-08 22:19       ` Stefan Richter
2007-05-09  9:46       ` Greg KH
2007-05-08 15:15 ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46424963.7070209@cfl.rr.com \
    --to=psusi@cfl.rr.com \
    --cc=bunk@stusta.de \
    --cc=cornelia.huck@de.ibm.com \
    --cc=david@lang.hm \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.