lkml.org 
[lkml]   [2022]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH RFC 0/6] libata/scsi/libsas: Allocate SCSI device earlier for ata port probe
From
On 9/20/22 19:27, John Garry wrote:
> Currently for libata the SCSI device (sdev) associated with an ata_device
> is allocated when the port probe has completed.
>
> It's useful to have the SCSI device and its associated request queue
> available earlier for the port probe. Specifically if we have the
> request queue available, then we can:
> - Easily put ATA qc in SCSI cmnd priv data
> - Send ATA internal commands on SCSI device request queue for [0]. The
> current solution there is to use the shost sdev request queue, which
> isn't great.
>
> This series changes the ata port probe to alloc the sdev in the
> ata_device revalidation, and then just do a SCSI starget scan afterwards.
>
> Why an RFC?
> 1. IPR driver needs to be fixed up - it does not use ATA EH port probe
> Mail [1] needs following up

Yes. If IPR could be converted to ata error_handler, a lot of code can
be simplified in libata too.

> 2. SATA PMP support needs verification, but I don't have a setup

Port multiplier behind a sas HBA will be challenging to setup :)
I can try, but I will need to open up one of my servers and hook a small
PMP box to one of the pm8001 plugs. I may have the cables for that...
Let me check.

> 3. This series needs to be merged into or go after [0]
>
> Patch 1/6 could be merged now.
>
> [0] https://lore.kernel.org/linux-ide/1654770559-101375-1-git-send-email-john.garry@huawei.com/
> [1] https://lore.kernel.org/linux-ide/369448ed-f89a-c2db-1850-91450d8b5998@opensource.wdc.com/
>
> Any comments welcome - please have a look.
>
> Based on v6.0-rc4 and tested for QEMU AHCI and libsas.
>
> John Garry (6):
> scsi: core: Use SCSI_SCAN_RESCAN in __scsi_add_device()
> scsi: scsi_transport_sas: Allocate end device target id in the rphy
> alloc
> scsi: core: Add scsi_get_dev()
> ata: libata-scsi: Add ata_scsi_setup_sdev()
> scsi: libsas: Add sas_ata_setup_device()
> ata: libata-scsi: Allocate sdev early in port probe
>
> drivers/ata/libata-eh.c | 4 +++
> drivers/ata/libata-scsi.c | 45 +++++++++++++++++++++----------
> drivers/ata/libata.h | 1 +
> drivers/scsi/libsas/sas_ata.c | 20 ++++++++++++++
> drivers/scsi/scsi_scan.c | 28 ++++++++++++++++++-
> drivers/scsi/scsi_transport_sas.c | 25 +++++++++++------
> include/linux/libata.h | 2 ++
> include/scsi/scsi_host.h | 3 +++
> 8 files changed, 105 insertions(+), 23 deletions(-)
>

--
Damien Le Moal
Western Digital Research

\
 
 \ /
  Last update: 2022-09-21 06:05    [W:0.724 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site