Re: convert SCSI to atomic queue limits, part 1 (v2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/04/2024 07:06, Christoph Hellwig wrote:

(reduce list)

Hi all,

this series converts the SCSI midlayer and LLDDs to use atomic queue limits
API.  It is pretty straight forward, except for the mpt3mr driver which
does really weird and probably already broken things by setting limits
from unlocked device iteration callbacks.

I will probably defer the (more complicated) ULD changes to the next
merge window as they would heavily conflict with Damien's zone write
plugging series.  With that the series could go in through the SCSI
tree if Jens' ACKs the core block layer bits.

What is the idea for dropping blk_queue_max_discard_sectors() call in sd_config_discard() -> blk_queue_max_discard_sectors() and the like, i.e. the ULD changes?

I ask, as I am rebasing sd_config_atomic() in https://lore.kernel.org/linux-scsi/20240326133813.3224593-9-john.g.garry@xxxxxxxxxx/, and I wondering about introducing functions like blk_queue_atomic_write_max_bytes()

Would it be better to start with a pattern like:

sd_config_atomic()
{
	queue_limits_start_update()
	//set limits
	lim->some_atomic_limit...

	queue_limits_commit_update()
}

Or keep as is for now?


Changes since v1:
  - print a different warning message for queue_limits_commit failure vs
    ->device_configure failure
  - cancel the queue limits update when ->device_configure fails
  - spelling fixes
  - improve comments

Diffstat:
  block/blk-settings.c                        |  245 ----------------------------
  block/bsg-lib.c                             |    6
  drivers/ata/ahci.h                          |    2
  drivers/ata/libata-sata.c                   |   11 -
  drivers/ata/libata-scsi.c                   |   19 +-
  drivers/ata/libata.h                        |    3
  drivers/ata/pata_macio.c                    |   11 -
  drivers/ata/sata_mv.c                       |    2
  drivers/ata/sata_nv.c                       |   24 +-
  drivers/ata/sata_sil24.c                    |    2
  drivers/firewire/sbp2.c                     |   13 -
  drivers/message/fusion/mptfc.c              |    1
  drivers/message/fusion/mptsas.c             |    1
  drivers/message/fusion/mptscsih.c           |    2
  drivers/message/fusion/mptspi.c             |    1
  drivers/s390/block/dasd_eckd.c              |    6
  drivers/scsi/aha152x.c                      |    8
  drivers/scsi/aic94xx/aic94xx_init.c         |    2
  drivers/scsi/hisi_sas/hisi_sas.h            |    3
  drivers/scsi/hisi_sas/hisi_sas_main.c       |    7
  drivers/scsi/hisi_sas/hisi_sas_v1_hw.c      |    2
  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c      |    2
  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c      |    7
  drivers/scsi/hosts.c                        |    6
  drivers/scsi/hptiop.c                       |    8
  drivers/scsi/ibmvscsi/ibmvfc.c              |    5
  drivers/scsi/imm.c                          |   12 -
  drivers/scsi/ipr.c                          |   10 -
  drivers/scsi/isci/init.c                    |    2
  drivers/scsi/iscsi_tcp.c                    |    2
  drivers/scsi/libsas/sas_scsi_host.c         |    7
  drivers/scsi/megaraid/megaraid_sas.h        |    2
  drivers/scsi/megaraid/megaraid_sas_base.c   |   29 +--
  drivers/scsi/megaraid/megaraid_sas_fusion.c |    3
  drivers/scsi/mpi3mr/mpi3mr.h                |    1
  drivers/scsi/mpi3mr/mpi3mr_app.c            |   12 -
  drivers/scsi/mpi3mr/mpi3mr_os.c             |   76 +++-----
  drivers/scsi/mpt3sas/mpt3sas_scsih.c        |   18 --
  drivers/scsi/mvsas/mv_init.c                |    2
  drivers/scsi/pm8001/pm8001_init.c           |    2
  drivers/scsi/pmcraid.c                      |   11 -
  drivers/scsi/ppa.c                          |    8
  drivers/scsi/qla2xxx/qla_os.c               |    6
  drivers/scsi/scsi_lib.c                     |   40 +---
  drivers/scsi/scsi_scan.c                    |   74 ++++----
  drivers/scsi/scsi_transport_fc.c            |   15 +
  drivers/scsi/scsi_transport_iscsi.c         |    6
  drivers/scsi/scsi_transport_sas.c           |    4
  drivers/staging/rts5208/rtsx.c              |   24 +-
  drivers/ufs/core/ufs_bsg.c                  |    3
  drivers/ufs/core/ufshcd.c                   |    3
  drivers/ufs/host/ufs-exynos.c               |    8
  drivers/usb/image/microtek.c                |    8
  drivers/usb/storage/scsiglue.c              |   57 ++----
  drivers/usb/storage/uas.c                   |   29 +--
  drivers/usb/storage/usb.c                   |   10 +
  include/linux/blkdev.h                      |   26 +-
  include/linux/bsg-lib.h                     |    3
  include/linux/libata.h                      |   10 -
  include/linux/mmc/host.h                    |    4
  include/scsi/libsas.h                       |    3
  include/scsi/scsi_host.h                    |    9 +
  include/scsi/scsi_transport.h               |    2
  include/scsi/scsi_transport_fc.h            |    1
  include/ufs/ufshcd.h                        |    1
  65 files changed, 347 insertions(+), 595 deletions(-)





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux