• Bart Van Assche's avatar
    scsi: sd: Rely on the driver core for asynchronous probing · f049cf1a
    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 domain 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: Pavel Machek <pavel@ucw.cz>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    f049cf1a
scsi_priv.h 6.51 KB