mbox series

[v7,0/7] NCQ Priority sysfs sttributes for libsas

Message ID 20240306012226.3398927-1-ipylypiv@google.com
Headers show
Series NCQ Priority sysfs sttributes for libsas | expand

Message

Igor Pylypiv March 6, 2024, 1:22 a.m. UTC
This patch series adds sas_ncq_prio_supported and sas_ncq_prio_enable
sysfs sttributes for libsas managed SATA devices. Existing libata sysfs
attributes cannot be used directly because the ata_port location is
different for libsas.

Changes since v6:
- Replaced sas_ata_sdev_attr_group definition with a macro for
  the "CONFIG_SCSI_SAS_ATA is not set" case. The macro defines
  an empty rvalue struct eliminating the variable definition.

Changes since v5:
- Added __maybe_unused attribute to sas_ata_sdev_attr_group to prevent
  an unused-const-variable warning when CONFIG_SCSI_SAS_ATA is not set.

Changes since v4:
- Updated sas_ncq_prio_* sysfs functions to use WARN_ON_ONCE() instead
  of WARN_ON().

Changes since v3:
- Changed ata_ncq_prio_supported() and ata_ncq_prio_enabled() to store
  the result into a boolean variable passed by address.
- Removed the "usable with both libsas and libata" wording from
  ata_ncq_prio_* helper's function comments.
- Removed the unlikely() in ata_ncq_prio_enable() because the function
  is not in a fastpath.
- Dropped hisi_sas v1 HW driver changes because it doesn't support SATA.

Changes since v2:
- Added libsas SATA sysfs attributes to aic94xx and isci.

Changes since v1:
- Dropped the "sas_" prefix to align sysfs sttributes naming with AHCI.
- Dropped ternary operators to make the code more readable.
- Corrected the formatting %u -> %d in sysfs_emit().
- Changed kstrtol() to kstrtobool() in [ata|sas]_ncq_prio_enable_store().
- Changed comments to use the "/* */" style instead of "//".
- Added libsas SATA sysfs attributes to mvsas and hisi_sas.
- Dropped the 'Reviewed-by' tags because they were not sent in-reply
  to the patch emails.

Igor Pylypiv (7):
  ata: libata-sata: Factor out NCQ Priority configuration helpers
  scsi: libsas: Define NCQ Priority sysfs attributes for SATA devices
  scsi: pm80xx: Add libsas SATA sysfs attributes group
  scsi: mvsas: Add libsas SATA sysfs attributes group
  scsi: hisi_sas: Add libsas SATA sysfs attributes group
  scsi: aic94xx: Add libsas SATA sysfs attributes group
  scsi: isci: Add libsas SATA sysfs attributes group

 drivers/ata/libata-sata.c              | 140 ++++++++++++++++++-------
 drivers/scsi/aic94xx/aic94xx_init.c    |   8 ++
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c |   6 ++
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c |   6 ++
 drivers/scsi/isci/init.c               |   6 ++
 drivers/scsi/libsas/sas_ata.c          |  94 +++++++++++++++++
 drivers/scsi/mvsas/mv_init.c           |   7 ++
 drivers/scsi/pm8001/pm8001_ctl.c       |   5 +
 drivers/scsi/pm8001/pm8001_init.c      |   1 +
 drivers/scsi/pm8001/pm8001_sas.h       |   1 +
 include/linux/libata.h                 |   6 ++
 include/scsi/sas_ata.h                 |   6 ++
 12 files changed, 247 insertions(+), 39 deletions(-)

Comments

Niklas Cassel March 6, 2024, 10:54 a.m. UTC | #1
Hello Igor,

On Tue, Mar 05, 2024 at 05:22:19PM -0800, Igor Pylypiv wrote:
> This patch series adds sas_ncq_prio_supported and sas_ncq_prio_enable
> sysfs sttributes for libsas managed SATA devices. Existing libata sysfs
> attributes cannot be used directly because the ata_port location is
> different for libsas.

As far as I can tell, you don't add sas_ncq_prio_supported and
sas_ncq_prio_enable, but instead add ncq_prio_supported and
ncq_prio_enable, so perhaps update this sentence.


Kind regards,
Niklas

> 
> Changes since v6:
> - Replaced sas_ata_sdev_attr_group definition with a macro for
>   the "CONFIG_SCSI_SAS_ATA is not set" case. The macro defines
>   an empty rvalue struct eliminating the variable definition.
> 
> Changes since v5:
> - Added __maybe_unused attribute to sas_ata_sdev_attr_group to prevent
>   an unused-const-variable warning when CONFIG_SCSI_SAS_ATA is not set.
> 
> Changes since v4:
> - Updated sas_ncq_prio_* sysfs functions to use WARN_ON_ONCE() instead
>   of WARN_ON().
> 
> Changes since v3:
> - Changed ata_ncq_prio_supported() and ata_ncq_prio_enabled() to store
>   the result into a boolean variable passed by address.
> - Removed the "usable with both libsas and libata" wording from
>   ata_ncq_prio_* helper's function comments.
> - Removed the unlikely() in ata_ncq_prio_enable() because the function
>   is not in a fastpath.
> - Dropped hisi_sas v1 HW driver changes because it doesn't support SATA.
> 
> Changes since v2:
> - Added libsas SATA sysfs attributes to aic94xx and isci.
> 
> Changes since v1:
> - Dropped the "sas_" prefix to align sysfs sttributes naming with AHCI.
> - Dropped ternary operators to make the code more readable.
> - Corrected the formatting %u -> %d in sysfs_emit().
> - Changed kstrtol() to kstrtobool() in [ata|sas]_ncq_prio_enable_store().
> - Changed comments to use the "/* */" style instead of "//".
> - Added libsas SATA sysfs attributes to mvsas and hisi_sas.
> - Dropped the 'Reviewed-by' tags because they were not sent in-reply
>   to the patch emails.
> 
> Igor Pylypiv (7):
>   ata: libata-sata: Factor out NCQ Priority configuration helpers
>   scsi: libsas: Define NCQ Priority sysfs attributes for SATA devices
>   scsi: pm80xx: Add libsas SATA sysfs attributes group
>   scsi: mvsas: Add libsas SATA sysfs attributes group
>   scsi: hisi_sas: Add libsas SATA sysfs attributes group
>   scsi: aic94xx: Add libsas SATA sysfs attributes group
>   scsi: isci: Add libsas SATA sysfs attributes group
> 
>  drivers/ata/libata-sata.c              | 140 ++++++++++++++++++-------
>  drivers/scsi/aic94xx/aic94xx_init.c    |   8 ++
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c |   6 ++
>  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c |   6 ++
>  drivers/scsi/isci/init.c               |   6 ++
>  drivers/scsi/libsas/sas_ata.c          |  94 +++++++++++++++++
>  drivers/scsi/mvsas/mv_init.c           |   7 ++
>  drivers/scsi/pm8001/pm8001_ctl.c       |   5 +
>  drivers/scsi/pm8001/pm8001_init.c      |   1 +
>  drivers/scsi/pm8001/pm8001_sas.h       |   1 +
>  include/linux/libata.h                 |   6 ++
>  include/scsi/sas_ata.h                 |   6 ++
>  12 files changed, 247 insertions(+), 39 deletions(-)
> 
> -- 
> 2.44.0.278.ge034bb2e1d-goog
>
Igor Pylypiv March 6, 2024, 9:33 p.m. UTC | #2
On Wed, Mar 06, 2024 at 11:54:20AM +0100, Niklas Cassel wrote:
> Hello Igor,
> 
> On Tue, Mar 05, 2024 at 05:22:19PM -0800, Igor Pylypiv wrote:
> > This patch series adds sas_ncq_prio_supported and sas_ncq_prio_enable
> > sysfs sttributes for libsas managed SATA devices. Existing libata sysfs
> > attributes cannot be used directly because the ata_port location is
> > different for libsas.
> 
> As far as I can tell, you don't add sas_ncq_prio_supported and
> sas_ncq_prio_enable, but instead add ncq_prio_supported and
> ncq_prio_enable, so perhaps update this sentence.
> 
Thank you for catching this, Niklas! I've updated the sysfs naming in
the actual patch but forgot to update the cover letter.

Thanks,
Igor
> 
> Kind regards,
> Niklas
> 
> > 
> > Changes since v6:
> > - Replaced sas_ata_sdev_attr_group definition with a macro for
> >   the "CONFIG_SCSI_SAS_ATA is not set" case. The macro defines
> >   an empty rvalue struct eliminating the variable definition.
> > 
> > Changes since v5:
> > - Added __maybe_unused attribute to sas_ata_sdev_attr_group to prevent
> >   an unused-const-variable warning when CONFIG_SCSI_SAS_ATA is not set.
> > 
> > Changes since v4:
> > - Updated sas_ncq_prio_* sysfs functions to use WARN_ON_ONCE() instead
> >   of WARN_ON().
> > 
> > Changes since v3:
> > - Changed ata_ncq_prio_supported() and ata_ncq_prio_enabled() to store
> >   the result into a boolean variable passed by address.
> > - Removed the "usable with both libsas and libata" wording from
> >   ata_ncq_prio_* helper's function comments.
> > - Removed the unlikely() in ata_ncq_prio_enable() because the function
> >   is not in a fastpath.
> > - Dropped hisi_sas v1 HW driver changes because it doesn't support SATA.
> > 
> > Changes since v2:
> > - Added libsas SATA sysfs attributes to aic94xx and isci.
> > 
> > Changes since v1:
> > - Dropped the "sas_" prefix to align sysfs sttributes naming with AHCI.
> > - Dropped ternary operators to make the code more readable.
> > - Corrected the formatting %u -> %d in sysfs_emit().
> > - Changed kstrtol() to kstrtobool() in [ata|sas]_ncq_prio_enable_store().
> > - Changed comments to use the "/* */" style instead of "//".
> > - Added libsas SATA sysfs attributes to mvsas and hisi_sas.
> > - Dropped the 'Reviewed-by' tags because they were not sent in-reply
> >   to the patch emails.
> > 
> > Igor Pylypiv (7):
> >   ata: libata-sata: Factor out NCQ Priority configuration helpers
> >   scsi: libsas: Define NCQ Priority sysfs attributes for SATA devices
> >   scsi: pm80xx: Add libsas SATA sysfs attributes group
> >   scsi: mvsas: Add libsas SATA sysfs attributes group
> >   scsi: hisi_sas: Add libsas SATA sysfs attributes group
> >   scsi: aic94xx: Add libsas SATA sysfs attributes group
> >   scsi: isci: Add libsas SATA sysfs attributes group
> > 
> >  drivers/ata/libata-sata.c              | 140 ++++++++++++++++++-------
> >  drivers/scsi/aic94xx/aic94xx_init.c    |   8 ++
> >  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c |   6 ++
> >  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c |   6 ++
> >  drivers/scsi/isci/init.c               |   6 ++
> >  drivers/scsi/libsas/sas_ata.c          |  94 +++++++++++++++++
> >  drivers/scsi/mvsas/mv_init.c           |   7 ++
> >  drivers/scsi/pm8001/pm8001_ctl.c       |   5 +
> >  drivers/scsi/pm8001/pm8001_init.c      |   1 +
> >  drivers/scsi/pm8001/pm8001_sas.h       |   1 +
> >  include/linux/libata.h                 |   6 ++
> >  include/scsi/sas_ata.h                 |   6 ++
> >  12 files changed, 247 insertions(+), 39 deletions(-)
> > 
> > -- 
> > 2.44.0.278.ge034bb2e1d-goog
> >