• Bart Van Assche's avatar
    scsi: sd: Rely on the driver core for asynchronous probing · 21e6ba3f
    Bart Van Assche authored
    As explained during the 2018 LSF/MM session about increasing SCSI disk
    probing concurrency, the problems with the current probing approach are as
    follows:
    
    - The driver core is unaware of asynchronous SCSI LUN probing.
      wait_for_device_probe() waits for all asynchronous probes except
      asynchronous SCSI disk probes.
    
    - There is unnecessary serialization between sd_probe() and sd_remove().
      This can lead to a deadlock.
    
    Hence this patch that modifies the sd driver such that it uses the driver
    core framework for asynchronous probing. The async domains and
    get_device()/put_device() pairs that became superfluous due to this change
    are removed.
    
    This patch does not affect the time needed for loading the scsi_debug
    kernel module with parameters delay=0 and max_luns=256.
    
    This patch depends on commit ef0ff683 ("driver core: Probe devices
    asynchronously instead of the driver") that went upstream in kernel version
    v5.1-rc1.
    
    Cc: Lee Duncan <lduncan@suse.com>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    21e6ba3f
scsi_priv.h 6.47 KB