[PATCH 09/12] mpt3sas: Handle fault during HBA initialization

2019-08-03 Thread Suganath Prabu
initialization driver checks the IOC state and if IOC state is in fault state then issue diag reset for once. if diag reset is success then continue with HBA initialization else terminate the HBA initialization. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 75

[PATCH 11/12] mpt3sas:Run SAS DEVICE STATUS CHANGE EVENT from ISR

2019-08-03 Thread Suganath Prabu
step3. So to limit these types of deadlocks driver will process the SAS DEVICE STATUS CHANGE EVENT events from ISR context instead of processing this event from worker thread context. This improvement avoids above deadlock. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt

[PATCH 03/12] mpt3sas: Gracefully handle online firmware update

2019-08-03 Thread Suganath Prabu
old firmware's MaxDevHandle value. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 93 + drivers/scsi/mpt3sas/mpt3sas_base.h | 2 + 2 files changed, 95 insertions(+) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/

[PATCH 05/12] mpt3sas: Enumerate SES of a managed PCIe switch

2019-08-03 Thread Suganath Prabu
ld's IEEE SGL's whenever it receives any SCSI commands for this SES device. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 5 ++ drivers/scsi/mpt3sas/mpt3sas_base.h | 16 +++ drivers/scsi/mpt3sas/mpt3sas_ctl.c | 7 +-- drivers/scsi/mpt

[PATCH 12/12] mpt3sas: Update driver version to 31.100.00.00

2019-08-03 Thread Suganath Prabu
Updated driver version from 29.100.00.00 to 31.100.00.00 which is equivalent to Phase 12 OOB. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas

[PATCH 02/12] mpt3sas: memset request frame before reusing

2019-08-03 Thread Suganath Prabu
complete request message frame. So reinitialize the complete request message frame with 0's before using it. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 2 ++ drivers/scsi/mpt3sas/mpt3sas_ctl.c | 1 + 2 files changed, 3 insertions(+) diff --git a/drivers/scsi/mp

[PATCH 08/12] mpt3sas: Add sysfs to know supported features

2019-08-03 Thread Suganath Prabu
In future we can utilize this sysfs parameter if any new feature is added and need to notify the same to applications. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 drivers/scsi/mpt3sas/mpt3sas_ctl.c | 19 +++ drivers/scsi/mpt3sas/mpt3sas_sc

[PATCH 01/12] mpt3sas: Add support for PCIe Lane margin

2019-08-03 Thread Suganath Prabu
PCIe Lane margin tool box request requires IEEE sgl's and hence driver fills the SGL field with IEEE sgl's while issuing the PCIe Lane margin ioctl request to the HBA firmware. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_ctl.c | 7 --- 1 file changed, 4 insert

[PATCH 07/12] mpt3sas: Support MEMORY MOVE Tool box command

2019-08-03 Thread Suganath Prabu
nformation and second SGE contains the IOC information. Driver has to take care only the 4th case, other three cases are by default supported by the current driver design. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_ctl.c | 27 +-- 1 file changed, 25 i

[PATCH 10/12] mpt3sas: Reduce the performance dip

2019-08-03 Thread Suganath Prabu
y ATA PT command is outstanding then this bandwidth drops to just ~190 rMB/s. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c ind

[PATCH 04/12] mpt3sas: Update MPI headers to 2.6.8 spec

2019-08-03 Thread Suganath Prabu
Updated MPI to 2.6.8 specification and header files to 2.00.54. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpi/mpi2.h | 5 +++-- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 10 +++-- drivers/scsi/mpt3sas/mpi/mpi2_image.h | 39 +++ drivers/scsi

[PATCH 06/12] mpt3sas: Allow ioctls to blocked access status NVMe

2019-08-03 Thread Suganath Prabu
the device is in the blocked state so that the device will be visible to Apps. So that Apps can send NVMe Encapsulated IOCTLs to this drive and make the drive online. This NVMe drive with DEVICE_BLOCKED access status won't added to the SML, it will be added only in the driver's

[PATCH 00/12] mpt3sas: Features and defect fixes.

2019-08-03 Thread Suganath Prabu
This patch series includes below Enhancements and Bug fixes. Suganath Prabu (12): mpt3sas: Add support for PCIe Lane margin mpt3sas: memset request frame before reusing mpt3sas: Gracefully handle online firmware update mpt3sas: Update MPI headers to 2.6.8 spec mpt3sas: Enumerate SES of

[PATCH v2] mpt3sas: Use 63-bit DMA addressing on SAS35 HBA

2019-07-30 Thread Suganath Prabu
tries to DMA the data at 0x- location then HBA will fault the firmware. Fix: Driver will set 63-bit DMA mask to ensure the above address will not be used. Cc: # 5.1.20+ Signed-off-by: Suganath Prabu Reviewed-by: Christoph Hellwig --- V1 Change: Added tag for stable tree

[V1] mpt3sas: Use 63-bit DMA addressing on SAS35 HBA

2019-07-26 Thread Suganath Prabu
Although SAS3 & SAS3.5 IT HBA controllers support 64-bit DMA addressing, as per hardware design, DMA address with all 64-bits set (0x-) results in a firmware fault. Fix: Driver will set 63-bit DMA mask to ensure the above address will not be used. Cc: Signed-off-by: Suga

[PATCH] mpt3sas: Use 63-bit DMA addressing on SAS35 HBA

2019-07-26 Thread Suganath Prabu
Although SAS3 & SAS3.5 IT HBA controllers support 64-bit DMA addressing, as per hardware design, DMA address with all 64-bits set (0x-) results in a firmware fault. Fix: Driver will set 63-bit DMA mask to ensure the above address will not be used. Signed-off-by: Suganath P

Re: [PATCH 2/2] scsi: mpt3sass: use DEVICE_ATTR_{RO, RW}

2019-06-20 Thread Suganath Prabu Subramani
Acked-by: Suganath Prabu On Fri, Jun 14, 2019 at 8:12 PM Tomas Henzl wrote: > > Use existing macros. No functional change. > > Signed-off-by: Tomas Henzl > --- > drivers/scsi/mpt3sas/mpt3sas_ctl.c | 210 + > 1 file changed, 97 inserti

Re: [PATCH 1/2] scsi: mpt3sas: make driver options visible in sys

2019-06-20 Thread Suganath Prabu Subramani
Acked-by: Suganath Prabu On Fri, Jun 14, 2019 at 8:12 PM Tomas Henzl wrote: > > Support is easier with all driver parameters visible in sysfs. > Also I've replaced a constant with an octal permission. > > Signed-off-by: Tomas Henzl > --- > drivers/scsi/mp

Re: [PATCH 0/2] mpt3sas

2019-06-20 Thread Suganath Prabu Subramani
Acked-by: Suganath Prabu On Wed, Jun 19, 2019 at 6:34 AM Martin K. Petersen wrote: > > > > Just few small changes, octal numbers instead of constants etc. > > Broadcom folks: Please review! > > -- > Martin K. Petersen Oracle Linux Engineering

[V3 09/10] mpt3sas: Introduce perf_mode module parameter

2019-05-31 Thread Suganath Prabu S
498.10 usec | |-|--|--| |latency | 97.10 usec |689.26 usec | - Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 144

[V3 03/10] mpt3sas: Add flag high_iops_queues

2019-05-31 Thread Suganath Prabu S
max_msix_vectors module parameter and - System booted in non kdump mode. Reply queues with interrupt coalescing enabled are called "high iops reply queues" and reply queues with interrupt coalescing disabled are called "low latency reply queues". Signed-off-by: Suganath Prabu

[V3 07/10] mpt3sas: Affinity high iops queues IRQs to local node

2019-05-31 Thread Suganath Prabu S
. In general, high iops queue and low latency queue together should fit into 128 reply queue (max reply queue supported by Aero/Sea). Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 73 - 1 file changed, 62 insertions(+), 11 deletions(-) diff

[V3 10/10] mpt3sas: Update driver version to 29.100.00.00

2019-05-31 Thread Suganath Prabu S
Update driver version from 28.100.00.00 to 29.100.00.00 This is equivalent to Phase 10 OOB driver. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi

[V3 05/10] mpt3sas: Use highiops queues if more in-flights

2019-05-31 Thread Suganath Prabu S
Driver will use round robin method for io submission in batches within the high iops queues when in-flight ios on the target device is more than 8. If in-flight ios per SCSI device more than 8, driver will use high iops queue else driver will use low latency reply queues. Signed-off-by: Suganath

[V3 06/10] mpt3sas:save msix index and use same while posting RD

2019-05-31 Thread Suganath Prabu S
descriptor and save determined msix index in msix_io field. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 42 ++-- drivers/scsi/mpt3sas/mpt3sas_base.h | 1 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 1 + 3 files changed, 35 insertions(+), 9

[V3 08/10] mpt3sas: Enable interrupt coalescing on high iops

2019-05-31 Thread Suganath Prabu S
user), current modified changes on ioc page1 won't take effect. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 2 +- drivers/scsi/mpt3sas/mpt3sas_base.c | 16 ++ drivers/scsi/mpt3sas/mpt3sas_base.h | 5 ++ drivers/scsi/mpt3sas/mpt3sas_config.c

[V3 04/10] mpt3sas: change _base_get_msix_index prototype

2019-05-31 Thread Suganath Prabu S
Code refactoring. In function _base_get_msix_index add scmd as second argument. This change is required for creating function pointer in next patch, where we introduce new function to get the msix index for high iops queues Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas

[V3 01/10] mpt3sas: function pointers of request descriptor

2019-05-31 Thread Suganath Prabu S
statements Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 38 +--- drivers/scsi/mpt3sas/mpt3sas_base.h | 3 ++ drivers/scsi/mpt3sas/mpt3sas_config.c| 2 +- drivers/scsi/mpt3sas/mpt3sas_ctl.c | 20 ++--- drivers/scsi

[V3 02/10] mpt3sas: Add Atomic RequestDescriptor support on Aero

2019-05-31 Thread Suganath Prabu S
Request Descriptor is an atomic operation, providing a safe mechanism for multiple processors on the host to post requests without synchronization. This Atomic Request Descriptor format is identical to first 32 bits of Default Request Descriptor and uses only 32 bits Signed-off-by: Suganath Prabu S

[V3 00/10] mpt3sas: Aero/Sea HBA feature addition

2019-05-31 Thread Suganath Prabu S
warnings reported by kbuild test robot v3: - In patch6, For readability use if statement instead of ternary operator. Suganath Prabu S (10): mpt3sas: function pointers of request descriptor mpt3sas: Add Atomic RequestDescriptor support on Aero mpt3sas: Add flag high_iops_queues mpt3sas: change

[PATCH v2 00/10] mpt3sas: Aero/Sea HBA feature addition

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu In this patch series we are adding below two features for Aero/Sea HBA device. Aero/Sea series HBA is PCI4.0 based controllers. 1. Add Atomic Request descriptor support: Atomic Request Descriptor is an alternative method for posting an entry onto a request queue. The

[PATCH v2 10/10] mpt3sas: Update driver version to 29.100.00.00

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu Update driver version from 28.100.00.00 to 29.100.00.00 This is equivalent to Phase 10 OOB driver. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas

[PATCH v2 06/10] mpt3sas:save msix index and use same while posting RD

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu Code refactor: In the IO submission path _base_get_msix_index is called twice, one while getting the smid; msix index is saved in msix_io filed in scsiio tracker and anther while posting the request descriptor(RD). now code refactor is done to determine msix index only

[PATCH v2 09/10] mpt3sas: Introduce perf_mode module parameter

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu 1. Introduce module parameter perf_mode for only Aero/Sea generation HBAs. 2. Update IOC page1 fields according to performance mode. Below are the performance modes that can be enabled with module parameter perf_mode. 0: Balanced - Few high iops reply queues will be

[PATCH v2 07/10] mpt3sas: Affinity high iops queues IRQs to local node

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu High iops queues are mapped to non-managed irqs. Set affinity of non-managed irqs to local numa node. Low latency queues are mapped to managed irq. Driver reserves some reply queues (pci_alloc_irq_vectors_affinity and .pre_vectors interface is used to meet the goal) for max

[PATCH v2 04/10] mpt3sas: change _base_get_msix_index prototype

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu Code refactoring. In function _base_get_msix_index add scmd as second argument. This change is required for creating function pointer in next patch, where we introduce new function to get the msix index for high iops queues Signed-off-by: Suganath Prabu --- drivers/scsi

[PATCH v2 03/10] mpt3sas: Add flag high_iops_queues

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu Aero controllers supports balanced performance mode and driver enables set of high iops and low latency reply queue only if, - HBA is an AERO controller, - MSIXs vector supported by the HBA is 128, - Total CPU count in the system more than high iops queue count

[PATCH v2 08/10] mpt3sas: Enable interrupt coalescing on high iops

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu Enable interrupt coalescing only on high iops queues when high iops queues are enabled. In ioc config page 1, offset 0x14 (ProductSpecific field) is used to determine interrupt coalescing enabled/disabled on per reply descriptor post queue group(8) basis. If 31st bit is

[PATCH v2 02/10] mpt3sas: Add Atomic RequestDescriptor support on Aero

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu If the Aero HBA supports Atomic Request Descriptors, it sets the Atomic Request Descriptor Capable bit in the IOCCapabilities field of the IOCFacts Reply message. Driver uses an Atomic Request Descriptor as an alternative method for posting an entry onto a request queue. The

[PATCH v2 05/10] mpt3sas: Use highiops queues if more in-flights

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu Driver will use round robin method for io submission in batches within the high iops queues when in-flight ios on the target device is more than 8. If in-flight ios per SCSI device more than 8, driver will use high iops queue else driver will use low latency reply queues

[PATCH v2 01/10] mpt3sas: function pointers of request descriptor

2019-05-20 Thread Suganath Prabu S
From: Suganath Prabu This code refactoring introduces function pointers. Host uses Request Descriptors of different types for posting an entry onto a request queue. Based on controller type and capabilities, host can also use atomic descriptors other than normal descriptors. Using function

[PATCH 10/10] mpt3sas: Update driver version to 29.100.00.00

2019-05-17 Thread Suganath Prabu S
Update driver version from 28.100.00.00 to 29.100.00.00 This is equivalent to Phase 10 OOB driver. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi

[PATCH 09/10] mpt3sas: Introduce perf_mode module parameter

2019-05-17 Thread Suganath Prabu S
498.10 usec | |-|--|--| |latency | 97.10 usec |689.26 usec | - Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 144 +++

[PATCH 08/10] mpt3sas: Enable interrupt coalescing on high iops

2019-05-17 Thread Suganath Prabu S
user), current modified changes on ioc page1 won't take effect. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 2 +- drivers/scsi/mpt3sas/mpt3sas_base.c | 16 drivers/scsi/mpt3sas/mpt3sas_base.h | 5 +++ drivers/scsi/mpt3sas/mpt3sas_config.c

[PATCH 04/10] mpt3sas: change _base_get_msix_index prototype

2019-05-17 Thread Suganath Prabu S
Code refactoring. In function _base_get_msix_index add scmd as second argument. This change is required for creating function pointer in next patch, where we introduce new function to get the msix index for high iops queues Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas

[PATCH 05/10] mpt3sas: Use highiops queues if more in-flights

2019-05-17 Thread Suganath Prabu S
Driver will use round robin method for io submission in batches within the high iops queues when in-flight ios on the target device is more than 8. If in-flight ios per SCSI device more than 8, driver will use high iops queue else driver will use low latency reply queues. Signed-off-by: Suganath

[PATCH 06/10] mpt3sas: save msix index and use same while posting RD

2019-05-17 Thread Suganath Prabu S
descriptor and save determined msix index in msix_io field. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 42 drivers/scsi/mpt3sas/mpt3sas_base.h | 1 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 1 + 3 files changed, 35 insertions

[PATCH 07/10] mpt3sas: Affinity high iops queues IRQs to local node

2019-05-17 Thread Suganath Prabu S
. In general, high iops queue and low latency queue together should fit into 128 reply queue (max reply queue supported by Aero/Sea) Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 73 +++-- 1 file changed, 62 insertions(+), 11 deletions

[PATCH 03/10] mpt3sas: Add flag high_iops_queues

2019-05-17 Thread Suganath Prabu S
max_msix_vectors module parameter and - System booted in non kdump mode. Reply queues with interrupt coalescing enabled are called "high iops reply queues" and reply queues with interrupt coalescing disabled are called "low latency reply queues". Signed-off-by: Suganath Prabu

[PATCH 02/10] mpt3sas: Add Atomic Request Descriptor support on Aero

2019-05-17 Thread Suganath Prabu S
Request Descriptor is an atomic operation, providing a safe mechanism for multiple processors on the host to post requests without synchronization. This Atomic Request Descriptor format is identical to first 32 bits of Default Request Descriptor and uses only 32 bits Signed-off-by: Suganath Prabu S

[PATCH 01/10] mpt3sas: function pointers of request descriptor

2019-05-17 Thread Suganath Prabu S
statements Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.c | 32 ++-- drivers/scsi/mpt3sas/mpt3sas_base.h | 3 +++ drivers/scsi/mpt3sas/mpt3sas_config.c| 2 +- drivers/scsi/mpt3sas/mpt3sas_ctl.c | 20

[PATCH 00/10] mpt3sas: Aero/Sea HBA feature addition

2019-05-17 Thread Suganath Prabu S
(i.e use low latency reply queue). If outstanding IOs per scsi device is more than 8 - Driver should do round robin io submission in batches on high iops queue. Example: Batches of the 16. “First 16 IOS submitted to reply queue 0, next 16 IOS submitted to reply queue 1 etc”. Suganath Prabu S (10

Re: [v1 0/7] Irq poll to address cpu lockup.

2019-03-18 Thread Suganath Prabu Subramani
Thanks Martin. -Suganath On Tue, Mar 19, 2019 at 2:47 AM Martin K. Petersen wrote: > > > Suganath, > > > We have seen cpu lock up issue from fields if system has greater (more > > than 96) logical cpu count. SAS3.0 controller (Invader series) > > supports at max 96 msix vector and SAS3.5 produc

Re: [v1 0/7] Irq poll to address cpu lockup.

2019-03-13 Thread Suganath Prabu Subramani
Hi Martin, Any update on these patches. Thanks, Suganath On Fri, Feb 15, 2019 at 1:10 PM Suganath Prabu wrote: > > We have seen cpu lock up issue from fields if > system has greater (more than 96) logical cpu count. > SAS3.0 controller (Invader series) supports at > max 96

Re: Re: How to disable NCQ with mpt3sas ?

2019-02-24 Thread Suganath Prabu Subramani
Hi Vaughan, NCQ feature is only for SATA. Enabling / Disabling NCQ through mpt3sas/lsiutil support is only for SATA drives. Thanks, Suganath On Mon, Feb 25, 2019 at 8:12 AM ca...@uit.com.cn wrote: > > Hi Suganath, > >[448435.392210] scsi 4:0:0:0: atapi(n), ncq(n), asyn_notify(n),smart(y),

[v1 5/7] mpt3sas: Load balance to improve performance and avoid soft lockups.

2019-02-14 Thread Suganath Prabu
:1 (where X > 1) This improves performance and also fixes soft lockups. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 21 + drivers/scsi/mpt3sas/mpt3sas_base.h | 5 + 2 files changed, 26 insertions(+) diff --git a/drivers/scsi/mpt3sas/mpt3sas

[v1 3/7] mpt3sas: Select IRQ_POLL to avoid build error.

2019-02-14 Thread Suganath Prabu
s/mpt3sas.ko] undefined! ERROR: "irq_poll_disable" [drivers/scsi/mpt3sas/mpt3sas.ko] undefined! ERROR: "irq_poll_complete" [drivers/scsi/mpt3sas/mpt3sas.ko] undefined! Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/d

[v1 0/7] Irq poll to address cpu lockup.

2019-02-14 Thread Suganath Prabu
can avoid the CPU lockups and by equally distributing the interrupts among the enabled MSI-x interrupts we can avoid performance issues. Patch 3 & 4 addresses Fix 1 and Fix 2 explained above, only if cpu count is more than FW supported MSI-x vector. Patch V1 changeset. Added patch 3 to add select i

[v1 6/7] mpt3sas: Improve the threshold value and introduce module param.

2019-02-14 Thread Suganath Prabu
post queues in _base_process_reply_queue. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 14 -- drivers/scsi/mpt3sas/mpt3sas_base.h | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi

[v1 1/7] mpt3sas: Fix typo in request_desript_type.

2019-02-14 Thread Suganath Prabu
Fixed typo in request_desript_type. request_desript_type --> request_descript_type. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/s

[v1 2/7] mpt3sas: simplify interrupt handler.

2019-02-14 Thread Suganath Prabu
Separate out processing of reply descriptor post queue from _base_interrupt to _base_process_reply_queue. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 49 + 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/drivers

[v1 7/7] mpt3sas: Update mpt3sas driver version to 28.100.00.00

2019-02-14 Thread Suganath Prabu
Updated driver version to 28.100.00.00, which is equivalent to OOB Ph9 Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h index

[v1 4/7] mpt3sas: Irq poll to avoid CPU hard lockups.

2019-02-14 Thread Suganath Prabu
mpt3sas0-msix0 450 0 0 0 0 IR-PCI-MSI-edge mpt3sas0-msix1 We have used the fix only if cpu count is more than FW supported MSI-x vector Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 78 - d

[PATCH 4/6] mpt3sas: Load balance to improve performance and avoid soft lockups.

2019-02-13 Thread Suganath Prabu
:1 (where X > 1) This improves performance and also fixes soft lockups. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 21 + drivers/scsi/mpt3sas/mpt3sas_base.h | 5 + 2 files changed, 26 insertions(+) diff --git a/drivers/scsi/mpt3sas/mpt3sas

[PATCH 5/6] mpt3sas: Improve the threshold value and introduce module param.

2019-02-13 Thread Suganath Prabu
post queues in _base_process_reply_queue. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 14 -- drivers/scsi/mpt3sas/mpt3sas_base.h | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi

[PATCH 2/6] mpt3sas: simplify interrupt handler.

2019-02-13 Thread Suganath Prabu
Separate out processing of reply descriptor post queue from _base_interrupt to _base_process_reply_queue. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 49 + 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/drivers

[PATCH 1/6] mpt3sas: Fix typo in request_desript_type.

2019-02-13 Thread Suganath Prabu
Fixed typo in request_desript_type. request_desript_type --> request_descript_type. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/s

[PATCH 6/6] mpt3sas: Update mpt3sas driver version to 28.100.00.00

2019-02-13 Thread Suganath Prabu
Updated driver version to 28.100.00.00, which is equivalent to OOB Ph9 Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h index

[PATCH 3/6] mpt3sas: Irq poll to avoid CPU hard lockups.

2019-02-13 Thread Suganath Prabu
mpt3sas0-msix0 450 0 0 0 0 IR-PCI-MSI-edge mpt3sas0-msix1 We have used the fix only if cpu count is more than FW supported MSI-x vector Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 78 - d

[PATCH 0/6] Irq poll to address cpu lockup.

2019-02-13 Thread Suganath Prabu
can avoid the CPU lockups and by equally distributing the interrupts among the enabled MSI-x interrupts we can avoid performance issues. Patch 3 & 4 addresses Fix 1 and Fix 2 explained above only if cpu count is more than FW supported MSI-x vector. Suganath Prabu S (6): mpt3sas: Fix typo in re

[PATCH 4/4] mpt3sas: Update driver version to 27.102.00.00

2019-01-29 Thread Suganath Prabu S
Updated driver version to 27.102.00.00 from 27.101.00.00. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h index db12c1b

[PATCH 3/4] mpt3sas: Add support for ATLAS PCIe switch.

2019-01-29 Thread Suganath Prabu S
Add Atlas PCIe Switch Management Port device PNPID, Vendor Id: 0x1000 device Id: 0x00B2 This device is based on MPI 2.6 spec and it exposes one SES device to accept management commands for the PCIe switch. Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpt3sas_base.h | 3

[PATCH 1/4] mpt3sas: Rename mpi endpoint device ID macro.

2019-01-29 Thread Suganath Prabu S
MPI Endpoint is a PCIe switch based on MPI2, Renaming device ID macro from MPI2_MFGPAGE_DEVID_SAS2308_MPI_EP to MPI2_MFGPAGE_DEVID_SWITCH_MPI_EP Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 2 +- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 6 +++--- 2 files changed, 4

[PATCH 0/4] mpt3sas: Add Atlas and Ambrosia device support.

2019-01-29 Thread Suganath Prabu S
MPI2.6 and it exposes one SES device to accept management commands. Suganath Prabu S (4): mpt3sas: Rename mpi endpoint device ID macro. mpt3sas: Add support for NVMe Switch Adapter mpt3sas: Add support for ATLAS PCIe switch. mpt3sas: Update driver version to 27.102.00.00 drivers/scsi

[PATCH 2/4] mpt3sas: Add support for NVMe Switch Adapter

2019-01-29 Thread Suganath Prabu S
Added device ID for NVMe Switch Adapter (Ambrosia). VID: 0x1000 DID: 0x02B1 Signed-off-by: Suganath Prabu S --- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 1 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 2 files changed, 5 insertions(+) diff --git a/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h b

Re: [PATCH 31/41] scsi: mpt3sas: mpt3sas_scsih: Mark expected switch fall-through

2018-12-19 Thread Suganath Prabu Subramani
Hi Gustavo, This patch may not apply smoothly over 4.21/scsi-queue. Our previous patch for Aero had some changes in this switch case. Can you resend this patch with latest code base ? Thanks, Suganath prabu On Thu, Dec 20, 2018 at 5:37 AM Gustavo A. R. Silva wrote: > > Hi, > > F

[PATCH 4/4] mpt3sas: Update driver version to 27.101.00.00.

2018-12-06 Thread Suganath Prabu
Update driver version from 27.100.00.00 to 27.101.00.00. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h index 3a294b9

[PATCH 3/4] mpt3sas: Replace readl with ioc->base_readl.

2018-12-06 Thread Suganath Prabu
Use ioc->base_readl to restrict the readl retries to only Aero controllers. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 39 +++-- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c

[PATCH 2/4] mpt3sas: Add separate function for aero doorbell reads.

2018-12-06 Thread Suganath Prabu
base_readl_aero for Aero IOC and base_readl for gen35 and other controllers. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 30 ++ drivers/scsi/mpt3sas/mpt3sas_base.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/drivers/scsi/mpt3sas

[PATCH 0/4] mpt3sas: Fix hardware bug in aero controllers.

2018-12-06 Thread Suganath Prabu
for maximum three times, if read returns zero. Suganath Prabu (4): mpt3sas: Introduce flag for aero based controllers. mpt3sas: Add separate function for aero doorbell reads. mpt3sas: Replace readl with ioc->base_readl. mpt3sas: Update driver version to 27.101.00.00. drivers/scsi/mpt3

[PATCH 1/4] mpt3sas: Introduce flag for aero based controllers.

2018-12-06 Thread Suganath Prabu
Adding flag "is_aero_ioc" to differentiate aero based controllers from other gen35 controllers. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 1 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 14 -- 2 files changed, 9 insertions(+), 6 deletions(-) di

[PATCH v7 3/8] mpt3sas: Refactor mpt3sas_wait_for_ioc function

2018-10-31 Thread Suganath Prabu
No functional change. Doing code refactor of function mpt3sas_wait_for_ioc() for better readability. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 20 +--- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/scsi/mpt3sas

[PATCH v7 6/8] mpt3sas: Don't modify EEDPTagMode field setting on SAS3.5 HBA devices

2018-10-31 Thread Suganath Prabu
If EEDPTagMode field in manufacturing page11 is set then unset it. This is needed to fix a hardware bug only in SAS3/SAS2 cards. So, skipping EEDPTagMode changes in Manufacturing page11 for SAS 3.5 controllers. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 2 +- 1 file

[PATCH v7 4/8] mpt3sas: Call sas_remove_host before removing the target devices

2018-10-31 Thread Suganath Prabu
time. Once sas_remove_host() is called before removing the target drives then driver can just clean up the resources allocated for target devices and no need to call sas_port_delete_phy(), sas_port_delete() API's as these API's internally called from sas_remove_host(). Signed-off-by:

[PATCH v7 5/8] mpt3sas: Fix Sync cache command failure during driver unload

2018-10-31 Thread Suganath Prabu
s which are issued to the target drives (where write cache is enabled) during driver unload time is failed with DID_NO_CONNECT status. Now modified the driver to allow SYNC CACHE and START STOP commands to IOC, even when remove_host flag is set. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3s

[PATCH v7 8/8] mpt3sas: Bump driver version to 27.100.00.00.

2018-10-31 Thread Suganath Prabu
Modify driver version to 27.100.00.00 (which is equivalent to PH8 OOB driver) Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h

[PATCH v7 0/8] mpt3sas: some bug fixes patches

2018-10-31 Thread Suganath Prabu
"mpt3sas_base_pci_device_is_available" and made inline V2 Change Set: Replaced mpt3sas_base_pci_device_is_unplugged with pci_device_is_present. V1 Chnage Set: In Patch 0001 - unlock mutex, if active reset is in progress. Suganath Prabu (8): mpt3sas: Added new #define variable IOC_OPERATIONAL_WAIT_COUNT

[PATCH v7 1/8] mpt3sas: Added new #define variable IOC_OPERATIONAL_WAIT_COUNT

2018-10-31 Thread Suganath Prabu
Added new #define variable IOC_OPERATIONAL_WAIT_COUNT and it replaces hard coded value '10' in all the places where driver is waiting for the IOC to become operational. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 4 ++-- drivers/scsi/mpt3sas/mpt3

[PATCH v7 7/8] mpt3sas: Fix driver modifying persistent data in Manufacturing page11

2018-10-31 Thread Suganath Prabu
ring page11. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_config.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_config.c b/drivers/scsi/mpt3sas/mpt3sas_config.c index 257b66f..8516713 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_config.c +++ b/dri

[PATCH v7 2/8] mpt3sas: Separate out mpt3sas_wait_for_ioc

2018-10-31 Thread Suganath Prabu
No functional changes. This section of code "wait for IOC to be operational" is used in many places across the driver. Factor this code out into a new mpt3sas_wait_for_ioc(). Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.c | 73 +++---

Re: [v6 0/4] mpt3sas: Hot-Plug Surprise removal support on IOC.

2018-10-29 Thread Suganath Prabu Subramani
Any update on this ? In V6, I have posted has only defect fixes (Other than HBA Hot-Plug Surprise remove support). We are reworking and incorporating the suggestions from Bjorn. And after covering tests, we ll post Hot-Plug Surprise removal patches. Thanks, Suganath Prabu On Tue, Oct 23, 2018 at

[v1 1/2] mpt3sas: Update MPI headers to support Aero controllers.

2018-10-29 Thread Suganath Prabu
Updating MPI headers to the latest version 2.6.7 to add support to the driver to detect the new 3816 and 3916 chip based controllers. Separate out firmware image data from mpi2_ioc.h to new file mpi2_image.h Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpi/mpi2.h | 17

[v1 2/2] mpt3sas: Add support to Aero PCI IDs.

2018-10-29 Thread Suganath Prabu
Add support for Aero/Sea controllers and add warning for configurable secure type IOC. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 30 -- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c

[v1 0/2] mpt3sas: Add support to Aero controllers.

2018-10-29 Thread Suganath Prabu
1) Updated MPI headers to the latest version 2.6.7. 2) Added support for Aero/Sea controllers. V1 changes: In Patch 2, ioc->name is populated later, so fixing ioc->name before using it in ioc_warn. Enable Warning message only for aero configurable controllers. Suganath Prabu (2): m

[Resend 2/2] mpt3sas: Add support to Aero PCI IDs.

2018-10-25 Thread Suganath Prabu
Add support for Aero/Sea controllers and add warning for configurable secure type IOC. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 26 ++ 1 file changed, 26 insertions(+) diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi

[Resend 1/2] mpt3sas: Update MPI headers to support Aero controllers.

2018-10-25 Thread Suganath Prabu
Updating MPI headers to the latest version 2.6.7 to add support to the driver to detect the new 3816 and 3916 chip based controllers. Separate out firmware image data from mpi2_ioc.h to new file mpi2_image.h Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpi/mpi2.h | 17

[Resend 0/2] mpt3sas: Add support to Aero controllers.

2018-10-25 Thread Suganath Prabu
1) Updated MPI headers to the latest version 2.6.7. 2) Added support for Aero/Sea controllers. Suganath Prabu (2): mpt3sas: Update MPI headers to support Aero controllers. mpt3sas: Add support to Aero PCI IDs. drivers/scsi/mpt3sas/mpi/mpi2.h | 17 +- drivers/scsi/mpt3sas/mpi

[PATCH 1/2] mpt3sas: Update MPI headers to support Aero controllers.

2018-10-25 Thread Suganath Prabu
Updating MPI headers to the latest version 2.6.7 to add support to the driver to detect the new 3816 and 3916 chip based controllers. Separate out firmware image data from mpi2_ioc.h to new file mpi2_image.h Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpi/mpi2.h | 17

[PATCH 2/2] mpt3sas: Add support to Aero PCI IDs.

2018-10-25 Thread Suganath Prabu
Add support for Aero/Sea controllers and add warning for configurable secure type IOC. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_base.h | 1 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 26 ++ 2 files changed, 27 insertions(+) diff --git a/drivers

[PATCH 0/2]mpt3sas: Update MPI headers to support Aero controllers.

2018-10-25 Thread Suganath Prabu
Updating MPI headers to the latest version 2.6.7 to add support to the driver to detect new 3816 and 3916 chip based controllers. Seperate out firmware image data from mpi2_ioc.h to new file mpi2_image.h Suganath Prabu (2): mpt3sas: Update MPI headers to support Aero controllers. mpt3sas

  1   2   3   4   >