* [PATCH 0/5] smartpqi updates
@ 2025-04-23 18:32 Don Brace
2025-04-23 18:32 ` [PATCH 1/5] smartpqi: take drives offline when controller is offline Don Brace
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Don Brace @ 2025-04-23 18:32 UTC (permalink / raw)
To: don.brace, scott.teel, scott.benesh, gerry.morong,
mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan,
jeremy.reeves, hch, James.Bottomley, martin.petersen,
joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang
Cc: linux-scsi
These patches are based on Martin Petersen's 6.16/scsi-queue tree
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
6.16/scsi-queue
There are two main functional changes in this patch series:
smartpqi-take-drives-offline-when-controller-is-offline
smartpqi-fix-smp_processor_id-call-trace-for-preemptible-kernels
The other two patches add PCI-IDs for new controllers and change the
driver version.
This set of changes consists of:
* smartpqi-take-drives-offline-when-controller-is-offline
On rare occasions, the controller can lock up and the driver was
removing the controller instance from OS but leaving the
drives exposed and their state was still 'running'.
This patch sets the drive state as 'offline' to avoid confusion.
* smartpqi-add-new-pci_ids
Add support for more PCI devices.
* smartpqi-enhance_wwid-logging-logic
Cosmetic change for logging WWIDs for NVMe devices and for drives
that support the extended format.
* smartpqi-fix-smp_processor_id-call-trace-for-preemptible-kernels
When preemption is enabled, there are call traces in the console
logs which are annoying. The call trace mentions using
smp_processor_id(). Since the driver is only using this function call
when accessing a per_cpu variable, we changed the call to
raw_smp_processor_id(). This patch was written by
Yi Zhang <yi.zhang@redhat.com> and I am posting it on his behalf.
* smartpqi-update-driver-version-to-2.1.34-035
No functional changes.
---
David Strahan (2):
smartpqi: take drives offline when controller is offline
smartpqi: add new pci ids
Don Brace (1):
smartpqi: update driver version to 2.1.34-035
Venkatesh Emparala (1):
Enhance WWID Logging Logic.
Yi Zhang (1):
smartpqi: fix smp_processor_id() call trace for preemptible kernels
drivers/scsi/smartpqi/smartpqi_init.c | 140 ++++++++++++++++++++++++--
1 file changed, 130 insertions(+), 10 deletions(-)
--
2.49.0.391.g4bbb303af6
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH 1/5] smartpqi: take drives offline when controller is offline 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace @ 2025-04-23 18:32 ` Don Brace 2025-04-23 18:32 ` [PATCH 2/5] smartpqi: add new pci ids Don Brace ` (5 subsequent siblings) 6 siblings, 0 replies; 11+ messages in thread From: Don Brace @ 2025-04-23 18:32 UTC (permalink / raw) To: don.brace, scott.teel, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, hch, James.Bottomley, martin.petersen, joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang Cc: linux-scsi From: David Strahan <david.strahan@microchip.com> When the controller is unexpectedly taken offline, show its drives as offline. During a controller lockup, the physical and logical drives under the locked up controller are still listed at the OS level. I.E. The controller is offline but the status of each drive is 'running'. Reviewed-by: Scott Benesh <scott.benesh@microchip.com> Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com> Signed-off-by: David Strahan <david.strahan@microchip.com> Co-developed-by: Don Brace <don.brace@microchip.com> Signed-off-by: Don Brace <don.brace@microchip.com> --- drivers/scsi/smartpqi/smartpqi_init.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index 88135fdb8bd1..73f576ccf511 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -67,6 +67,7 @@ static struct pqi_cmd_priv *pqi_cmd_priv(struct scsi_cmnd *cmd) static void pqi_verify_structures(void); static void pqi_take_ctrl_offline(struct pqi_ctrl_info *ctrl_info, enum pqi_ctrl_shutdown_reason ctrl_shutdown_reason); +static void pqi_take_ctrl_devices_offline(struct pqi_ctrl_info *ctrl_info); static void pqi_ctrl_offline_worker(struct work_struct *work); static int pqi_scan_scsi_devices(struct pqi_ctrl_info *ctrl_info); static void pqi_scan_start(struct Scsi_Host *shost); @@ -9128,6 +9129,7 @@ static void pqi_take_ctrl_offline_deferred(struct pqi_ctrl_info *ctrl_info) pqi_ctrl_wait_until_quiesced(ctrl_info); pqi_fail_all_outstanding_requests(ctrl_info); pqi_ctrl_unblock_requests(ctrl_info); + pqi_take_ctrl_devices_offline(ctrl_info); } static void pqi_ctrl_offline_worker(struct work_struct *work) @@ -9202,6 +9204,27 @@ static void pqi_take_ctrl_offline(struct pqi_ctrl_info *ctrl_info, schedule_work(&ctrl_info->ctrl_offline_work); } +static void pqi_take_ctrl_devices_offline(struct pqi_ctrl_info *ctrl_info) +{ + int rc; + unsigned long flags; + struct pqi_scsi_dev *device; + + spin_lock_irqsave(&ctrl_info->scsi_device_list_lock, flags); + list_for_each_entry(device, &ctrl_info->scsi_device_list, scsi_device_list_entry) { + rc = list_is_last(&device->scsi_device_list_entry, &ctrl_info->scsi_device_list); + if (rc) + continue; + + /* + * Is the sdev pointer NULL? + */ + if (device->sdev) + scsi_device_set_state(device->sdev, SDEV_OFFLINE); + } + spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags); +} + static void pqi_print_ctrl_info(struct pci_dev *pci_dev, const struct pci_device_id *id) { -- 2.49.0.391.g4bbb303af6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/5] smartpqi: add new pci ids 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace 2025-04-23 18:32 ` [PATCH 1/5] smartpqi: take drives offline when controller is offline Don Brace @ 2025-04-23 18:32 ` Don Brace 2025-04-23 18:32 ` [PATCH 3/5] Enhance WWID Logging Logic Don Brace ` (4 subsequent siblings) 6 siblings, 0 replies; 11+ messages in thread From: Don Brace @ 2025-04-23 18:32 UTC (permalink / raw) To: don.brace, scott.teel, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, hch, James.Bottomley, martin.petersen, joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang Cc: linux-scsi From: David Strahan <david.strahan@microchip.com> Add in support for more PCI devices. All PCI ID entries in Hex. Add PCI IDs for Ramaxel controllers: VID / DID / SVID / SDID ---- ---- ---- ---- Ramaxel SmartHBA RX8238-16i 9005 028f 1018 8238 Ramaxel SSSRAID card 9005 028f 1f3f 0610 Add PCI ID for Alibaba controller: VID / DID / SVID / SDID ---- ---- ---- ---- HBA AS1340 9005 028f 1ded 3301 Add PCI IDs for Inspur controller: VID / DID / SVID / SDID ---- ---- ---- ---- RT0800M6E2i 9005 028f 1bd4 00a3 Add PCI IDs for Delta controllers: VID / DID / SVID / SDID ---- ---- ---- ---- ThinkSystem 4450-8i SAS/SATA/NVMe PCIe Gen4 9005 028f 1d49 0222 24Gb HBA ThinkSystem 4450-16i SAS/SATA/NVMe PCIe Gen4 9005 028f 1d49 0223 24Gb HBA ThinkSystem 4450-8e SAS/SATA PCIe Gen4 9005 028f 1d49 0224 24Gb HBA ThinkSystem RAID 4450-16e PCIe Gen4 24Gb 9005 028f 1d49 0225 Adapter HBA ThinkSystem RAID 5450-16i PCIe Gen4 24Gb Adapter 9005 028f 1d49 0521 ThinkSystem RAID 9450-8i 4GB Flash PCIe Gen4 9005 028f 1d49 0624 24Gb Adapter ThinkSystem RAID 9450-16i 4GB Flash PCIe Gen4 9005 028f 1d49 0625 24Gb Adapter ThinkSystem RAID 9450-16i 4GB Flash PCIe Gen4 9005 028f 1d49 0626 24Gb Adapter ThinkSystem RAID 9450-32i 8GB Flash PCIe Gen4 9005 028f 1d49 0627 24Gb Adapter ThinkSystem RAID 9450-16e 4GB Flash PCIe Gen4 9005 028f 1d49 0628 24Gb Adapter Add PCI ID for Cloudnine Controller: VID / DID / SVID / SDID ---- ---- ---- ---- SmartHBA P6600-24i 9005 028f 1f51 100b Add PCI IDs for Hurraydata Controllers: VID / DID / SVID / SDID ---- ---- ---- ---- HRDT TrustHBA H4100-8i 9005 028f 207d 4044 HRDT TrustHBA H4100-8e 9005 028f 207d 4054 HRDT TrustHBA H4100-16i 9005 028f 207d 4084 HRDT TrustHBA H4100-16e 9005 028f 207d 4094 HRDT TrustRAID D3152s-8i 9005 028f 207d 4140 HRDT TrustRAID D3154s-8i 9005 028f 207d 4240 Reviewed-by: Scott Benesh <scott.benesh@microchip.com> Reviewed-by: Scott Teel <scott.teel@microchip.com> Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com> Signed-off-by: David Strahan <david.strahan@microchip.com> Signed-off-by: Don Brace <don.brace@microchip.com> --- drivers/scsi/smartpqi/smartpqi_init.c | 84 +++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index 73f576ccf511..3cb8619e9ce9 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -9731,6 +9731,10 @@ static const struct pci_device_id pqi_pci_id_table[] = { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1bd4, 0x0089) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x1bd4, 0x00a3) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1ff9, 0x00a1) @@ -10067,6 +10071,30 @@ static const struct pci_device_id pqi_pci_id_table[] = { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, PCI_VENDOR_ID_ADAPTEC2, 0x14f0) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x207d, 0x4044) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x207d, 0x4054) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x207d, 0x4084) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x207d, 0x4094) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x207d, 0x4140) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x207d, 0x4240) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, PCI_VENDOR_ID_ADVANTECH, 0x8312) @@ -10283,6 +10311,14 @@ static const struct pci_device_id pqi_pci_id_table[] = { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1cc4, 0x0201) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x1018, 0x8238) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x1f3f, 0x0610) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, PCI_VENDOR_ID_LENOVO, 0x0220) @@ -10291,10 +10327,30 @@ static const struct pci_device_id pqi_pci_id_table[] = { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, PCI_VENDOR_ID_LENOVO, 0x0221) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0222) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0223) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0224) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0225) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, PCI_VENDOR_ID_LENOVO, 0x0520) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0521) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, PCI_VENDOR_ID_LENOVO, 0x0522) @@ -10315,6 +10371,26 @@ static const struct pci_device_id pqi_pci_id_table[] = { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, PCI_VENDOR_ID_LENOVO, 0x0623) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0624) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0625) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0626) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0627) + }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_LENOVO, 0x0628) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1014, 0x0718) @@ -10343,6 +10419,10 @@ static const struct pci_device_id pqi_pci_id_table[] = { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1137, 0x0300) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x1ded, 0x3301) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1ff9, 0x0045) @@ -10491,6 +10571,10 @@ static const struct pci_device_id pqi_pci_id_table[] = { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1f51, 0x100a) }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x1f51, 0x100b) + }, { PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, 0x1f51, 0x100e) -- 2.49.0.391.g4bbb303af6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/5] Enhance WWID Logging Logic. 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace 2025-04-23 18:32 ` [PATCH 1/5] smartpqi: take drives offline when controller is offline Don Brace 2025-04-23 18:32 ` [PATCH 2/5] smartpqi: add new pci ids Don Brace @ 2025-04-23 18:32 ` Don Brace 2025-04-23 18:32 ` [PATCH 4/5] smartpqi: fix smp_processor_id() call trace for preemptible kernels Don Brace ` (3 subsequent siblings) 6 siblings, 0 replies; 11+ messages in thread From: Don Brace @ 2025-04-23 18:32 UTC (permalink / raw) To: don.brace, scott.teel, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, hch, James.Bottomley, martin.petersen, joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang Cc: linux-scsi From: Venkatesh Emparala <Venkatesh.Emparala@microchip.com> Log the extended WWID for NVMe devices and for devices that have the firmware feature bit "PQI_FIRMWARE_FEATURE_RPL_EXTENDED_FORMAT_4_5" enabled. Log 8-bytes otherwise. Reviewed-by: Scott Teel <scott.teel@microchip.com> Reviewed-by: Scott Benesh <scott.benesh@microchip.com> Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com> Signed-off-by: Venkatesh Emparala <Venkatesh.Emparala@microchip.com> Signed-off-by: Don Brace <don.brace@microchip.com> --- drivers/scsi/smartpqi/smartpqi_init.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index 3cb8619e9ce9..efc042071ec0 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -2011,18 +2011,31 @@ static void pqi_dev_info(struct pqi_ctrl_info *ctrl_info, PQI_DEV_INFO_BUFFER_LENGTH - count, "-:-"); - if (pqi_is_logical_device(device)) + if (pqi_is_logical_device(device)) { count += scnprintf(buffer + count, PQI_DEV_INFO_BUFFER_LENGTH - count, " %08x%08x", *((u32 *)&device->scsi3addr), *((u32 *)&device->scsi3addr[4])); - else + } else if (ctrl_info->rpl_extended_format_4_5_supported) { + if (device->device_type == SA_DEVICE_TYPE_NVME) + count += scnprintf(buffer + count, + PQI_DEV_INFO_BUFFER_LENGTH - count, + " %016llx%016llx", + get_unaligned_be64(&device->wwid[0]), + get_unaligned_be64(&device->wwid[8])); + else + count += scnprintf(buffer + count, + PQI_DEV_INFO_BUFFER_LENGTH - count, + " %016llx", + get_unaligned_be64(&device->wwid[0])); + } else { count += scnprintf(buffer + count, PQI_DEV_INFO_BUFFER_LENGTH - count, - " %016llx%016llx", - get_unaligned_be64(&device->wwid[0]), - get_unaligned_be64(&device->wwid[8])); + " %016llx", + get_unaligned_be64(&device->wwid[0])); + } + count += scnprintf(buffer + count, PQI_DEV_INFO_BUFFER_LENGTH - count, " %s %.8s %.16s ", -- 2.49.0.391.g4bbb303af6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/5] smartpqi: fix smp_processor_id() call trace for preemptible kernels 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace ` (2 preceding siblings ...) 2025-04-23 18:32 ` [PATCH 3/5] Enhance WWID Logging Logic Don Brace @ 2025-04-23 18:32 ` Don Brace 2025-04-23 18:32 ` [PATCH 5/5] smartpqi: update driver version to 2.1.34-035 Don Brace ` (2 subsequent siblings) 6 siblings, 0 replies; 11+ messages in thread From: Don Brace @ 2025-04-23 18:32 UTC (permalink / raw) To: don.brace, scott.teel, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, hch, James.Bottomley, martin.petersen, joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang Cc: linux-scsi From: Yi Zhang <yi.zhang@redhat.com> Correct kernel call trace when calling smp_processor_id() when called in preemptible kernels by using raw_smp_processor_id(). smp_processor_id() checks to see if preemption is disabled and if not, issue an error message followed by a call to dump_stack(). Brief example of call trace: kernel: check_preemption_disabled: 436 callbacks suppressed kernel: BUG: using smp_processor_id() in preemptible [00000000] code: kworker/u1025:0/2354 kernel: caller is pqi_scsi_queue_command+0x183/0x310 [smartpqi] kernel: CPU: 129 PID: 2354 Comm: kworker/u1025:0 kernel: ... kernel: Workqueue: writeback wb_workfn (flush-253:0) kernel: Call Trace: kernel: <TASK> kernel: dump_stack_lvl+0x34/0x48 kernel: check_preemption_disabled+0xdd/0xe0 kernel: pqi_scsi_queue_command+0x183/0x310 [smartpqi] kernel: ... Fixes: 283dcc1b142e ("scsi: smartpqi: add counter for parity write stream requests") Reviewed-by: Scott Benesh <scott.benesh@microchip.com> Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com> Tested-by: Don Brace <don.brace@microchip.com> Signed-off-by: Yi Zhang <yi.zhang@redhat.com> Signed-off-by: Don Brace <don.brace@microchip.com> --- drivers/scsi/smartpqi/smartpqi_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index efc042071ec0..e8abfc56d0f0 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -6003,7 +6003,7 @@ static bool pqi_is_parity_write_stream(struct pqi_ctrl_info *ctrl_info, pqi_stream_data->next_lba = rmd.first_block + rmd.block_cnt; pqi_stream_data->last_accessed = jiffies; - per_cpu_ptr(device->raid_io_stats, smp_processor_id())->write_stream_cnt++; + per_cpu_ptr(device->raid_io_stats, raw_smp_processor_id())->write_stream_cnt++; return true; } @@ -6082,7 +6082,7 @@ static int pqi_scsi_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scm rc = pqi_raid_bypass_submit_scsi_cmd(ctrl_info, device, scmd, queue_group); if (rc == 0 || rc == SCSI_MLQUEUE_HOST_BUSY) { raid_bypassed = true; - per_cpu_ptr(device->raid_io_stats, smp_processor_id())->raid_bypass_cnt++; + per_cpu_ptr(device->raid_io_stats, raw_smp_processor_id())->raid_bypass_cnt++; } } if (!raid_bypassed) -- 2.49.0.391.g4bbb303af6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 5/5] smartpqi: update driver version to 2.1.34-035 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace ` (3 preceding siblings ...) 2025-04-23 18:32 ` [PATCH 4/5] smartpqi: fix smp_processor_id() call trace for preemptible kernels Don Brace @ 2025-04-23 18:32 ` Don Brace 2025-04-29 1:45 ` [PATCH 0/5] smartpqi updates Martin K. Petersen 2025-05-06 4:25 ` Martin K. Petersen 6 siblings, 0 replies; 11+ messages in thread From: Don Brace @ 2025-04-23 18:32 UTC (permalink / raw) To: don.brace, scott.teel, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, hch, James.Bottomley, martin.petersen, joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang Cc: linux-scsi Update driver version to 2.1.34-035. Reviewed-by: Gerry Morong <gerry.morong@microchip.com> Reviewed-by: Scott Teel <scott.teel@microchip.com> Reviewed-by: Scott Benesh <scott.benesh@microchip.com> Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com> Signed-off-by: Don Brace <don.brace@microchip.com> --- drivers/scsi/smartpqi/smartpqi_init.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index e8abfc56d0f0..a7ab87220c0c 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -32,11 +32,11 @@ #define BUILD_TIMESTAMP #endif -#define DRIVER_VERSION "2.1.30-031" +#define DRIVER_VERSION "2.1.34-035" #define DRIVER_MAJOR 2 #define DRIVER_MINOR 1 -#define DRIVER_RELEASE 30 -#define DRIVER_REVISION 31 +#define DRIVER_RELEASE 34 +#define DRIVER_REVISION 35 #define DRIVER_NAME "Microchip SmartPQI Driver (v" \ DRIVER_VERSION BUILD_TIMESTAMP ")" -- 2.49.0.391.g4bbb303af6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 0/5] smartpqi updates 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace ` (4 preceding siblings ...) 2025-04-23 18:32 ` [PATCH 5/5] smartpqi: update driver version to 2.1.34-035 Don Brace @ 2025-04-29 1:45 ` Martin K. Petersen 2025-05-06 4:25 ` Martin K. Petersen 6 siblings, 0 replies; 11+ messages in thread From: Martin K. Petersen @ 2025-04-29 1:45 UTC (permalink / raw) To: Don Brace Cc: scott.teel, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, hch, James.Bottomley, martin.petersen, joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang, linux-scsi Don, > These patches are based on Martin Petersen's 6.16/scsi-queue tree > https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git > 6.16/scsi-queue Applied to 6.16/scsi-staging, thanks! -- Martin K. Petersen ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/5] smartpqi updates 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace ` (5 preceding siblings ...) 2025-04-29 1:45 ` [PATCH 0/5] smartpqi updates Martin K. Petersen @ 2025-05-06 4:25 ` Martin K. Petersen 6 siblings, 0 replies; 11+ messages in thread From: Martin K. Petersen @ 2025-05-06 4:25 UTC (permalink / raw) To: scott.teel, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, hch, James.Bottomley, joseph.szczypek, POSWALD, cameron.cumberland, Yi Zhang, Don Brace Cc: Martin K . Petersen, linux-scsi On Wed, 23 Apr 2025 13:32:24 -0500, Don Brace wrote: > These patches are based on Martin Petersen's 6.16/scsi-queue tree > https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git > 6.16/scsi-queue > > There are two main functional changes in this patch series: > smartpqi-take-drives-offline-when-controller-is-offline > smartpqi-fix-smp_processor_id-call-trace-for-preemptible-kernels > > [...] Applied to 6.16/scsi-queue, thanks! [1/5] smartpqi: take drives offline when controller is offline https://git.kernel.org/mkp/scsi/c/32c79c268078 [2/5] smartpqi: add new pci ids https://git.kernel.org/mkp/scsi/c/01b8bdddcfab [3/5] Enhance WWID Logging Logic. https://git.kernel.org/mkp/scsi/c/001164fc3082 [4/5] smartpqi: fix smp_processor_id() call trace for preemptible kernels https://git.kernel.org/mkp/scsi/c/42d033cf4b51 [5/5] smartpqi: update driver version to 2.1.34-035 https://git.kernel.org/mkp/scsi/c/6e6d9e85bad2 -- Martin K. Petersen Oracle Linux Engineering ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 0/5] smartpqi updates
@ 2024-07-11 19:46 Don Brace
2024-08-03 2:12 ` Martin K. Petersen
2024-08-05 21:17 ` Martin K. Petersen
0 siblings, 2 replies; 11+ messages in thread
From: Don Brace @ 2024-07-11 19:46 UTC (permalink / raw)
To: don.brace, Kevin.Barnett, scott.teel, Justin.Lindley,
scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen,
murthy.bhat, kumar.meiyappan, jeremy.reeves, david.strahan, hch,
James Bottomley, Martin Petersen, joseph.szczypek, POSWALD
Cc: linux-scsi
These patches are based on Martin Petersen's 6.11/scsi-queue tree
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
6.11/scsi-queue
The functional changes of note to smartpqi are for: multipath failover
and improving the accuracy of our RAID bypass counter.
For multipath we are:
Reverting commit 94a68c814328 ("scsi: smartpqi: Quickly propagate path failures to SCSI midlayer")
because under certain rare conditions involving encryption-enabled devices,
a false path failure is reported to the SML causing multipath to failover
to the other path.
Improving errors returned from the driver back to the SML by checking for
error codes returned from the firmware and returning the correct ASC/ASCQ codes
to the SML.
The other two patches add PCI-IDs for new controllers and change the
driver version.
This set of changes consists of:
* smartpqi-add-new-controller-PCI-IDs
No functional changes. Just adding in more device support.
* smartpqi-improve-accuracy-of-RAID-bypass-counter
We changed from using a integer variable to a __percpu variable. Using an integer
was causing some race conditions when updating the "raid_bypass_cnt" value. This
lead to unreliable results.
Found by internal testing. No known externally reported bugs.
* smartpqi-revert-propagate-the-multipath-failure-to-SML-quickly
We are reverting commit 94a68c814328
("scsi: smartpqi: Quickly propagate path failures to SCSI midlayer")
because when encryption is enabled, a false path failure was being reported to the SML
causing multipath to fail the path. This was because when encryption is enabled,
the controller temporarily disables our Accelerated I/O path which caused the
false path disabled detection. Disabling the accelerated I/O path can cause
some performance degradation.
Found by internal testing. No known externally reported bugs.
* smartpqi-improve-handling-of-multipath-failover
We are better aligning error codes retuned by our controller firmware with what the OS
is expecting. This improves multipath failover detection.
Found by internal testing. No known externally reported bugs.
* smartpqi-update-version-to-2.1.28-025
No functional changes.
---
David Strahan (1):
smartpqi: add new controller PCI IDs
Don Brace (1):
smartpqi: update driver version to 2.1.28-025
Gilbert Wu (1):
smartpqi: revert propagate-the-multipath-failure-to-SML-quickly
Kevin Barnett (2):
smartpqi: improve accuracy/performance of raid-bypass-counter.
smartpqi: fix improve handling of multipath failover
drivers/scsi/smartpqi/smartpqi.h | 2 +-
drivers/scsi/smartpqi/smartpqi_init.c | 176 ++++++++++++++++++++++----
2 files changed, 151 insertions(+), 27 deletions(-)
--
2.45.2.827.g557ae147e6
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH 0/5] smartpqi updates 2024-07-11 19:46 Don Brace @ 2024-08-03 2:12 ` Martin K. Petersen 2024-08-05 21:17 ` Martin K. Petersen 1 sibling, 0 replies; 11+ messages in thread From: Martin K. Petersen @ 2024-08-03 2:12 UTC (permalink / raw) To: Don Brace Cc: Kevin.Barnett, scott.teel, Justin.Lindley, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, david.strahan, hch, James Bottomley, Martin Petersen, joseph.szczypek, POSWALD, linux-scsi Don, > The functional changes of note to smartpqi are for: multipath failover > and improving the accuracy of our RAID bypass counter. Applied to 6.12/scsi-staging, thanks! -- Martin K. Petersen Oracle Linux Engineering ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/5] smartpqi updates 2024-07-11 19:46 Don Brace 2024-08-03 2:12 ` Martin K. Petersen @ 2024-08-05 21:17 ` Martin K. Petersen 1 sibling, 0 replies; 11+ messages in thread From: Martin K. Petersen @ 2024-08-05 21:17 UTC (permalink / raw) To: Kevin.Barnett, scott.teel, Justin.Lindley, scott.benesh, gerry.morong, mahesh.rajashekhara, mike.mcgowen, murthy.bhat, kumar.meiyappan, jeremy.reeves, david.strahan, hch, James Bottomley, joseph.szczypek, POSWALD, Don Brace Cc: Martin K . Petersen, linux-scsi On Thu, 11 Jul 2024 14:46:59 -0500, Don Brace wrote: > These patches are based on Martin Petersen's 6.11/scsi-queue tree > https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git > 6.11/scsi-queue > > The functional changes of note to smartpqi are for: multipath failover > and improving the accuracy of our RAID bypass counter. > > [...] Applied to 6.12/scsi-queue, thanks! [1/5] smartpqi: add new controller PCI IDs https://git.kernel.org/mkp/scsi/c/0e21e73384d3 [2/5] smartpqi: improve accuracy/performance of raid-bypass-counter. https://git.kernel.org/mkp/scsi/c/bb0f5445b27f [3/5] smartpqi: revert propagate-the-multipath-failure-to-SML-quickly https://git.kernel.org/mkp/scsi/c/f1393d52e6cd [4/5] smartpqi: fix improve handling of multipath failover https://git.kernel.org/mkp/scsi/c/57abab70a5e0 [5/5] smartpqi: update driver version to 2.1.28-025 https://git.kernel.org/mkp/scsi/c/5b4ded3f35d5 -- Martin K. Petersen Oracle Linux Engineering ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-05-06 4:26 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-04-23 18:32 [PATCH 0/5] smartpqi updates Don Brace 2025-04-23 18:32 ` [PATCH 1/5] smartpqi: take drives offline when controller is offline Don Brace 2025-04-23 18:32 ` [PATCH 2/5] smartpqi: add new pci ids Don Brace 2025-04-23 18:32 ` [PATCH 3/5] Enhance WWID Logging Logic Don Brace 2025-04-23 18:32 ` [PATCH 4/5] smartpqi: fix smp_processor_id() call trace for preemptible kernels Don Brace 2025-04-23 18:32 ` [PATCH 5/5] smartpqi: update driver version to 2.1.34-035 Don Brace 2025-04-29 1:45 ` [PATCH 0/5] smartpqi updates Martin K. Petersen 2025-05-06 4:25 ` Martin K. Petersen -- strict thread matches above, loose matches on Subject: below -- 2024-07-11 19:46 Don Brace 2024-08-03 2:12 ` Martin K. Petersen 2024-08-05 21:17 ` Martin K. Petersen
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.