Re: Question: vport_disable attribute under /sys/class/fc_vport

2007-06-12 Thread James Smart
The only thing that should keep the attribute being shown is whether you have a non-zero value for the template .vport_disable function. Double-checked it on my systems... -- james s Seokmann Ju wrote: Hello James, I've got a question on NPIV framwork that is included in FC transport layer.

Re: [PATCH] FC_Transport: Check portstates before invoking target scan

2007-06-14 Thread James Smart
Sounds reasonable... Only change I'd make is rather than comparing all the different states, simply compare (rport->port_state != FC_PORTSTATE_ONLINE) -- james s Hannes Reinecke wrote: Hi James (& James, too :-), scsi_transport_fc.c:fc_user_scan() should check the portstates prior to calling

Re: [PATCH] lpfc: convert to use the data buffer accessors - part 2

2007-07-03 Thread James Smart
ACK - missed in our merge. Thank You... -- james s Boaz Harrosh wrote: This is an addendum to: commit a0b4f78f9a4c869e9b29f254054ad7441cb40bbf Author: FUJITA Tomonori <[EMAIL PROTECTED]> [SCSI] lpfc: convert to use the data buffer accessors One place was missed in the merge Signed-of

[ANNOUNCE v2]: Broadcom (Emulex) FC Target driver - efct

2018-12-18 Thread James Smart
nents. While those efforts are underway, we would like receive review comments on the code that is present. Comments can be sent to: ecd-efct@broadcom.com or myself -- james On 2/27/2017 3:28 PM, James Smart wrote: I'd like to announce the availability of the Broadcom (Emulex)

Re: Aw: [ANNOUNCE v2]: Broadcom (Emulex) FC Target driver - efct

2018-12-20 Thread James Smart
On 12/19/2018 10:04 AM, Sebastian Herbszt wrote: Hello James, I'd like to announce the availability of the Broadcom (Emulex) FC target driver - efct. This is the 2nd round of announcement.   In the first round, after discussion with community members, it was decided that the driver would consi

[PATCH 05/25] lpfc: Replace io_channels for nvme and fcp with general hdw_queues per cpu

2018-12-26 Thread James Smart
vectors Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 4 +- drivers/scsi/lpfc/lpfc_attr.c| 84 ++- drivers/scsi/lpfc/lpfc_debugfs.c | 152 ++-- drivers/scsi/lpfc/lpfc_debugfs.h | 65 +++--- drivers/scsi/lpfc/lpfc_init.c| 489

[PATCH 09/25] lpfc: Adapt cpucheck debugfs logic to Hardware Queues

2018-12-26 Thread James Smart
-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 5 -- drivers/scsi/lpfc/lpfc_debugfs.c | 131 +-- drivers/scsi/lpfc/lpfc_nvme.c| 37 +-- drivers/scsi/lpfc/lpfc_nvmet.c | 58 - drivers/scsi/lpfc/lpfc_sli4.h| 11

[PATCH 17/25] lpfc: cleanup: convert eq_delay to usdelay

2018-12-26 Thread James Smart
max applies to a single cpu and the value will be replicated to all cpus. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_attr.c | 8 ++- drivers/scsi/lpfc/lpfc_init.c | 9 ++- drivers/scsi/lpfc/lpfc_sli.c |

[PATCH 21/25] lpfc: Enable SCSI and NVME fc4s by default

2018-12-26 Thread James Smart
Now that performance mods don't split resources by protocol and enable both protocols by default, there's no reason not to enable concurrent SCSI and NVME fc4 support. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_attr.c | 4 ++-- 1 file

[PATCH 19/25] lpfc: Utilize new IRQ API when allocating MSI-X vectors

2018-12-26 Thread James Smart
pci_irq_vector() usage. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_init.c | 162 -- 1 file changed, 13 insertions(+), 149 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index

[PATCH 03/25] lpfc: Implement common IO buffers between NVME and SCSI

2018-12-26 Thread James Smart
I's are no longer split, the lpfc_xri_split module parameter is removed. Adapters based on SLI3 will continue to use the older scsi_buf_list_get/put routines. All SLI4 adapters utilize the new IO buffer scheme Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lp

[PATCH 12/25] lpfc: Synchronize hardware queues with SCSI MQ interface

2018-12-26 Thread James Smart
lpfc_sli4_scmd_to_wqidx_distr() routine. No longer needed. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 3 +- drivers/scsi/lpfc/lpfc_attr.c | 10 ++ drivers/scsi/lpfc/lpfc_init.c | 7 - drivers/scsi/lpfc/lpfc_scsi.c | 73

[PATCH 07/25] lpfc: cleanup: Remove unused FCP_XRI_ABORT_EVENT slowpath event

2018-12-26 Thread James Smart
Both NVME and SCSI aborts are now processed off the CQ workqueue and do not generate events for the slowpath any more. Remove the unused event code. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 1 - drivers/scsi/lpfc/lpfc_hbadisc.c | 2

[PATCH 06/25] lpfc: Partition XRI buffer list across Hardware Queues

2018-12-26 Thread James Smart
dware queue statistics Added new empty_io_bufs counter to track if a cpu runs out of XRIs. Replace common_ variables/names with io_ to make meanings clearer. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 8 +- drivers/scsi/lpfc/lpfc_attr.c

[PATCH 08/25] lpfc: cleanup: Remove lock on SCSI io completion

2018-12-26 Thread James Smart
A scsi host lock is taken on every io completion to check whether someone is waiting on the io completion. The lock doesn't have to be taken on all ios, only those that have been marked as aborted. Rework to avoid the lock on non-aborted ios. Signed-off-by: Dick Kennedy Signed-off-by:

[PATCH 04/25] lpfc: Remove extra vector and SLI4 queue for Expresslane

2018-12-26 Thread James Smart
-off-by: James Smart --- drivers/scsi/lpfc/lpfc_crtn.h| 5 - drivers/scsi/lpfc/lpfc_debugfs.c | 36 +-- drivers/scsi/lpfc/lpfc_init.c| 225 ++- drivers/scsi/lpfc/lpfc_scsi.c| 9 +- drivers/scsi/lpfc/lpfc_sli.c | 212

[PATCH 14/25] lpfc: Allow override of hardware queue selection policies

2018-12-26 Thread James Smart
the interrupting event, schedule the cq processing on the cpu associated with the hardware queue's cq. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_attr.c | 11 ++- drivers/scsi/lpfc/lpfc_hw4.h | 2 +- drivers/scsi/lpfc/lpfc_nvme.c

[PATCH 01/25] lpfc: cleanup: remove nrport from nvme command structure

2018-12-26 Thread James Smart
But the fc discovery node pointer is alrady in the command structure so the dereferrence was unnecessary. Eliminated the nrport structure member and its use, which also eliminates the port-wide lock. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_n

[PATCH 16/25] lpfc: Support non-uniform allocation of MSIX vectors to hardware queues

2018-12-26 Thread James Smart
relationships with the per-cpu hardware queues so they can function independently. MSIX vectors will be equitably split been cpu sockets/cores and then the per-cpu hardware queues will be mapped to the vectors most efficient for them. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers

[PATCH 13/25] lpfc: Adapt partitioned XRI lists to efficient sharing

2018-12-26 Thread James Smart
and their behaviors. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 29 +- drivers/scsi/lpfc/lpfc_attr.c| 9 + drivers/scsi/lpfc/lpfc_crtn.h| 16 + drivers/scsi/lpfc/lpfc_debugfs.c | 262 ++ drivers/scsi/lpfc/lpfc_debugfs.h |

[PATCH 11/25] lpfc: Convert ring number to hardware queue for nvme wqe posting.

2018-12-26 Thread James Smart
routine that properly adapts. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_crtn.h | 4 ++-- drivers/scsi/lpfc/lpfc_init.c | 3 ++- drivers/scsi/lpfc/lpfc_nvme.c | 11 ++- drivers/scsi/lpfc/lpfc_nvme.h | 3 ++- drivers/scsi/lpfc/lpfc_nvmet.c | 34

[PATCH 10/25] lpfc: Move SCSI and NVME Stats to hardware queue structures

2018-12-26 Thread James Smart
syfs and debugfs stat routines to collate the per hardware queue values and report at an adapter level. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 9 +-- drivers/scsi/lpfc/lpfc_attr.c| 68 ++--- drivers/scsi/lpfc/lpfc_debugfs.c

[PATCH 15/25] lpfc: Fix setting affinity hints to correlate with hardware queues

2018-12-26 Thread James Smart
or hardware queue resources could not scale to the cpu count). Correct the queue affinitization logic, when queue count is less than cpu count. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_attr.c | 38 +--- drivers/scsi/lpfc

[PATCH 02/25] lpfc: cleanup: Remove excess check on NVME io submit code path

2018-12-26 Thread James Smart
lpfc_nvme_prep_io_cmd() checks for null pnode, but caller lpfc_nvme_fcp_io_submit() has already ensured it's non-null. remove the pnode null check Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_nvme.c | 2 +- 1 file changed, 1 insertion(+), 1 del

[PATCH 00/25] lpfc updates for 12.2.0.0

2018-12-26 Thread James Smart
nvme target module, whose changes are dependent upon the submission path rework. The patches were cut against Martin's 4.21/scsi-queue tree James Smart (25): lpfc: cleanup: remove nrport from nvme command structure lpfc: cleanup: Remove excess check on NVME io submit code path lpfc:

[PATCH 25/25] lpfc: Update lpfc version to 12.2.0.0

2018-12-26 Thread James Smart
Update lpfc version to 12.2.0.0 Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h index 3f4398ffb567..e07263dc07ed

[PATCH 24/25] lpfc: Fix nvmet issues when link bounce under IO load

2018-12-26 Thread James Smart
val. Commonized lock handling around the abort processing routines. Prevent context release while still in ABTS list. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc_nvmet.c | 50 +++--- 1 file changed, 37 insertions(+), 13 deleti

[PATCH 18/25] lpfc: Rework EQ/CQ processing to address interrupt coalescing

2018-12-26 Thread James Smart
will only rearm as the processing thread exits. The immediately interrupt is also beneficial to idle or lower-processing CQ's as they get serviced immediately without being penalized by sharing an EQ with a more loaded CQ. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers

[PATCH 22/25] lpfc: Fix default driver parameter collision for allowing NPIV support

2018-12-26 Thread James Smart
I can continue to allow NPIV support. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 3 ++- drivers/scsi/lpfc/lpfc_attr.c | 4 ++-- drivers/scsi/lpfc/lpfc_ct.c| 16 drivers/scsi/lpfc/lpfc_debugfs.c | 4 ++-- dr

[PATCH 23/25] lpfc: Correct upcalling nvmet_fc transport during io done downcall

2018-12-26 Thread James Smart
. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 1 + drivers/scsi/lpfc/lpfc_nvmet.c | 247 ++--- drivers/scsi/lpfc/lpfc_nvmet.h | 1 + 3 files changed, 137 insertions(+), 112 deletions(-) diff --git a/drivers

[PATCH 20/25] lpfc: Resize cpu maps structures based on possible cpus

2018-12-26 Thread James Smart
The work done to date utilized the number of present cpus when sizing per-cpu structures. Structures should have been sized based on the max possible cpu count. Convert the driver over to possible cpu count for sizing allocation. Signed-off-by: Dick Kennedy Signed-off-by: James Smart

Re: [PATCH 05/25] lpfc: Replace io_channels for nvme and fcp with general hdw_queues per cpu

2018-12-28 Thread James Smart
On 12/28/2018 1:05 AM, Hannes Reinecke wrote: That should rather be in the previous patch, no? I'll double check. If so, and I repost, I'll move it. -- james

Re: [PATCH 06/25] lpfc: Partition XRI buffer list across Hardware Queues

2018-12-28 Thread James Smart
On 12/28/2018 1:10 AM, Hannes Reinecke wrote: Have you looked at using embedded xri buffers? Now that you have a common xri buffer structure it should be possible to switch to embedded xri buffers, and rely on blk-mq sbitmap tag allocation to manage the xri buffers. Alternatively one could _ide

Re: [PATCH 08/25] lpfc: cleanup: Remove lock on SCSI io completion

2018-12-28 Thread James Smart
On 12/28/2018 1:16 AM, Hannes Reinecke wrote: On 12/27/18 12:33 AM, James Smart wrote: A scsi host lock is taken on every io completion to check whether someone is waiting on the io completion. The lock doesn't have to be taken on all ios, only those that have been marked as aborted. Rewo

Re: [PATCH 13/25] lpfc: Adapt partitioned XRI lists to efficient sharing

2018-12-28 Thread James Smart
On 12/28/2018 1:23 AM, Hannes Reinecke wrote: As indicated previously, once we would be using embedded xris none of this would be necessary ... See comments on prior patch... -- james

Re: [PATCH 18/25] lpfc: Rework EQ/CQ processing to address interrupt coalescing

2018-12-28 Thread James Smart
On 12/28/2018 1:53 AM, Hannes Reinecke wrote: Have you considered making 'LPFC_EQ_DELAY_MSECS' configurable? It looks to me as if it would introduce a completion latency; having it configurable would allow us to check and possibly modify this. It could be configurable if desired. It shouldn't

Re: [PATCH 19/25] lpfc: Utilize new IRQ API when allocating MSI-X vectors

2018-12-28 Thread James Smart
On 12/28/2018 4:30 AM, Hannes Reinecke wrote: Doesn't this obsolete patch 16? no - it just changes the way vectors are obtained. -- james

Re: [PATCH 2/2] lpfc: nvmet: avoid hang / use-after-free when destroying targetport

2019-01-17 Thread James Smart
-free, and a hang if slub_debug=FZPU is enabled. Fix this by putting the completion on the stack. Signed-off-by: Ewan D. Milne --- drivers/scsi/lpfc/lpfc_nvmet.c | 8 +--- drivers/scsi/lpfc/lpfc_nvmet.h | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) Reviewed-by:   James

Re: [PATCH 1/2] lpfc: nvme: avoid hang / use-after-free when destroying localport

2019-01-17 Thread James Smart
, and a hang if slub_debug=FZPU is enabled. Fix this by putting the completion on the stack. Signed-off-by: Ewan D. Milne --- drivers/scsi/lpfc/lpfc_nvme.c | 16 +--- drivers/scsi/lpfc/lpfc_nvme.h | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) Reviewed-by:   James

[PATCH v2 01/26] lpfc: cleanup: remove nrport from nvme command structure

2019-01-22 Thread James Smart
But the fc discovery node pointer is alrady in the command structure so the dereferrence was unnecessary. Eliminated the nrport structure member and its use, which also eliminates the port-wide lock. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers

[PATCH v2 08/26] lpfc: Adapt cpucheck debugfs logic to Hardware Queues

2019-01-22 Thread James Smart
-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 5 -- drivers/scsi/lpfc/lpfc_debugfs.c | 131 +-- drivers/scsi/lpfc/lpfc_nvme.c| 37 +-- drivers/scsi/lpfc/lpfc_nvmet.c | 58 - drivers/scsi

[PATCH v2 05/26] lpfc: Replace io_channels for nvme and fcp with general hdw_queues per cpu

2019-01-22 Thread James Smart
vectors Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 4 +- drivers/scsi/lpfc/lpfc_attr.c| 84 ++- drivers/scsi/lpfc/lpfc_debugfs.c | 152 ++-- drivers/scsi/lpfc/lpfc_debugfs.h | 65 +++--- drivers

[PATCH v2 02/26] lpfc: cleanup: Remove excess check on NVME io submit code path

2019-01-22 Thread James Smart
lpfc_nvme_prep_io_cmd() checks for null pnode, but caller lpfc_nvme_fcp_io_submit() has already ensured it's non-null. remove the pnode null check Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_nvme.c | 2 +- 1 file chang

[PATCH v2 00/26] lpfc updates for 12.2.0.0

2019-01-22 Thread James Smart
Locking on completion and abort paths. Modified references to access_ok() for kernel api change. Reworked as only scsi_mq is now supported. Removed references to shost_use_scsi_mq() as well as driver addition of an enable_scsi_mq flag and module parameter. Added Copyright updates patch J

[PATCH v2 09/26] lpfc: Move SCSI and NVME Stats to hardware queue structures

2019-01-22 Thread James Smart
syfs and debugfs stat routines to collate the per hardware queue values and report at an adapter level. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- v2: access_ok() arg list reduce to match kernel api change --- drivers/scsi/lpfc/lpfc.h | 9

[PATCH v2 12/26] lpfc: Adapt partitioned XRI lists to efficient sharing

2019-01-22 Thread James Smart
and their behaviors. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- v2: access_ok() arg list reduce to match kernel api change --- drivers/scsi/lpfc/lpfc.h | 26 +- drivers/scsi/lpfc/lpfc_attr.c| 9 + drivers/scsi/lpfc/lpfc_crtn.h| 16 + drivers/scsi/lpfc/lpfc_debu

[PATCH v2 11/26] lpfc: Synchronize hardware queues with SCSI MQ interface

2019-01-22 Thread James Smart
get_scsi-buf_xxx routines. = Remove lpfc_sli4_scmd_to_wqidx_distr() routine. No longer needed. - Includes fix for SLI-3 that does not have multi queue parallelization. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- v2: Adapt for 5.0 api changes: SCSI mq support only. Remove all

[PATCH v2 17/26] lpfc: Rework EQ/CQ processing to address interrupt coalescing

2019-01-22 Thread James Smart
will only rearm as the processing thread exits. The immediately interrupt is also beneficial to idle or lower-processing CQ's as they get serviced immediately without being penalized by sharing an EQ with a more loaded CQ. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-

[PATCH v2 26/26] lpfc: Update lpfc version to 12.2.0.0

2019-01-22 Thread James Smart
Update lpfc version to 12.2.0.0 Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h

[PATCH v2 23/26] lpfc: Correct upcalling nvmet_fc transport during io done downcall

2019-01-22 Thread James Smart
. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 1 + drivers/scsi/lpfc/lpfc_nvmet.c | 247 ++--- drivers/scsi/lpfc/lpfc_nvmet.h | 1 + 3 files changed, 137 insertions(+), 112

[PATCH v2 24/26] lpfc: Fix nvmet issues when link bounce under IO load

2019-01-22 Thread James Smart
val. Commonized lock handling around the abort processing routines. Prevent context release while still in ABTS list. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_nvmet.c | 50 +++--- 1 file changed,

[PATCH v2 04/26] lpfc: Remove extra vector and SLI4 queue for Expresslane

2019-01-22 Thread James Smart
-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_crtn.h| 5 - drivers/scsi/lpfc/lpfc_debugfs.c | 36 +-- drivers/scsi/lpfc/lpfc_init.c| 225 ++- drivers/scsi/lpfc/lpfc_scsi.c| 9 +- drivers/scsi/lpfc/lpfc_sli.c

[PATCH v2 14/26] lpfc: Fix setting affinity hints to correlate with hardware queues

2019-01-22 Thread James Smart
or hardware queue resources could not scale to the cpu count). Correct the queue affinitization logic, when queue count is less than cpu count. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_attr.c | 38

[PATCH v2 21/26] lpfc: Rework locking on SCSI io completion

2019-01-22 Thread James Smart
new cmd lock. Ensure all flag changing and nulling of context pointers taken under lock. When adding lock to task management abort, realized it was missing other synchronization locks. Added that synchronization to match normal paths. Signed-off-by: Dick Kennedy Signed-off-by: James Smart

[PATCH v2 19/26] lpfc: Resize cpu maps structures based on possible cpus

2019-01-22 Thread James Smart
The work done to date utilized the number of present cpus when sizing per-cpu structures. Structures should have been sized based on the max possible cpu count. Convert the driver over to possible cpu count for sizing allocation. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed

[PATCH v2 22/26] lpfc: Fix default driver parameter collision for allowing NPIV support

2019-01-22 Thread James Smart
I can continue to allow NPIV support. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 3 ++- drivers/scsi/lpfc/lpfc_attr.c | 4 ++-- drivers/scsi/lpfc/lpfc_ct.c| 16 drivers/scsi

[PATCH v2 16/26] lpfc: cleanup: convert eq_delay to usdelay

2019-01-22 Thread James Smart
max applies to a single cpu and the value will be replicated to all cpus. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_attr.c | 8 ++- drivers/scsi/lpfc/lpfc_init.c | 9 ++- drivers/scsi/lpfc/lpfc_sli.c |

[PATCH v2 20/26] lpfc: Enable SCSI and NVME fc4s by default

2019-01-22 Thread James Smart
Now that performance mods don't split resources by protocol and enable both protocols by default, there's no reason not to enable concurrent SCSI and NVME fc4 support. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_

[PATCH v2 03/26] lpfc: Implement common IO buffers between NVME and SCSI

2019-01-22 Thread James Smart
I's are no longer split, the lpfc_xri_split module parameter is removed. Adapters based on SLI3 will continue to use the older scsi_buf_list_get/put routines. All SLI4 adapters utilize the new IO buffer scheme Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by:

[PATCH v2 15/26] lpfc: Support non-uniform allocation of MSIX vectors to hardware queues

2019-01-22 Thread James Smart
relationships with the per-cpu hardware queues so they can function independently. MSIX vectors will be equitably split been cpu sockets/cores and then the per-cpu hardware queues will be mapped to the vectors most efficient for them. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by

[PATCH v2 07/26] lpfc: cleanup: Remove unused FCP_XRI_ABORT_EVENT slowpath event

2019-01-22 Thread James Smart
Both NVME and SCSI aborts are now processed off the CQ workqueue and do not generate events for the slowpath any more. Remove the unused event code. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 1 - drivers/scsi

[PATCH v2 06/26] lpfc: Partition XRI buffer list across Hardware Queues

2019-01-22 Thread James Smart
dware queue statistics Added new empty_io_bufs counter to track if a cpu runs out of XRIs. Replace common_ variables/names with io_ to make meanings clearer. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 8 +- drivers

[PATCH v2 13/26] lpfc: Allow override of hardware queue selection policies

2019-01-22 Thread James Smart
the interrupting event, schedule the cq processing on the cpu associated with the hardware queue's cq. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- v2: Adapt for 5.0 api changes: Remove all use of shost_use_scsi_mq(). Remove references to driver flag to enable sc

[PATCH v2 10/26] lpfc: Convert ring number to hardware queue for nvme wqe posting.

2019-01-22 Thread James Smart
routine that properly adapts. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_crtn.h | 4 ++-- drivers/scsi/lpfc/lpfc_init.c | 3 ++- drivers/scsi/lpfc/lpfc_nvme.c | 11 ++- drivers/scsi/lpfc/lpfc_nvme.h | 3 ++- drivers

[PATCH v2 18/26] lpfc: Utilize new IRQ API when allocating MSI-X vectors

2019-01-22 Thread James Smart
pci_irq_vector() usage. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_init.c | 162 -- 1 file changed, 13 insertions(+), 149 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers

[PATCH v2 25/26] lpfc: Update 12.2.0.0 file copyrights to 2019

2019-01-22 Thread James Smart
For files modifed as part of 12.2.0.0 patches, update copyright to 2019 Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 2 +- drivers/scsi/lpfc/lpfc_attr.c | 2 +- drivers/scsi/lpfc/lpfc_crtn.h | 2 +- drivers/scsi/lpfc/lpfc_ct.c

[PATCH v3 00/26] lpfc updates for 12.2.0.0

2019-01-25 Thread James Smart
Tweaked patch 17 to do auto-eq-delays only if ganging up on a cpu. James Smart (26): lpfc: cleanup: remove nrport from nvme command structure lpfc: cleanup: Remove excess check on NVME io submit code path lpfc: Implement common IO buffers between NVME and SCSI lpfc: Remove extra vecto

[PATCH v3 03/26] lpfc: Implement common IO buffers between NVME and SCSI

2019-01-25 Thread James Smart
I's are no longer split, the lpfc_xri_split module parameter is removed. Adapters based on SLI3 will continue to use the older scsi_buf_list_get/put routines. All SLI4 adapters utilize the new IO buffer scheme Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by:

[PATCH v3 08/26] lpfc: Adapt cpucheck debugfs logic to Hardware Queues

2019-01-25 Thread James Smart
-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 5 -- drivers/scsi/lpfc/lpfc_debugfs.c | 131 +-- drivers/scsi/lpfc/lpfc_nvme.c| 37 +-- drivers/scsi/lpfc/lpfc_nvmet.c | 58 - drivers/scsi

[PATCH v3 06/26] lpfc: Partition XRI buffer list across Hardware Queues

2019-01-25 Thread James Smart
dware queue statistics Added new empty_io_bufs counter to track if a cpu runs out of XRIs. Replace common_ variables/names with io_ to make meanings clearer. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 8 +- drivers

[PATCH v3 13/26] lpfc: Allow override of hardware queue selection policies

2019-01-25 Thread James Smart
the interrupting event, schedule the cq processing on the cpu associated with the hardware queue's cq. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- v2: Adapt for 5.0 api changes: Remove all use of shost_use_scsi_mq(). Remove references to driver flag to enable sc

[PATCH v3 11/26] lpfc: Synchronize hardware queues with SCSI MQ interface

2019-01-25 Thread James Smart
get_scsi-buf_xxx routines. = Remove lpfc_sli4_scmd_to_wqidx_distr() routine. No longer needed. - Includes fix for SLI-3 that does not have multi queue parallelization. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- v2: Adapt for 5.0 api changes: SCSI mq support only. Remove all

[PATCH v3 09/26] lpfc: Move SCSI and NVME Stats to hardware queue structures

2019-01-25 Thread James Smart
syfs and debugfs stat routines to collate the per hardware queue values and report at an adapter level. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- v2: access_ok() arg list reduce to match kernel api change --- drivers/scsi/lpfc/lpfc.h | 9

[PATCH v3 10/26] lpfc: Convert ring number to hardware queue for nvme wqe posting.

2019-01-25 Thread James Smart
routine that properly adapts. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_crtn.h | 4 ++-- drivers/scsi/lpfc/lpfc_init.c | 3 ++- drivers/scsi/lpfc/lpfc_nvme.c | 11 ++- drivers/scsi/lpfc/lpfc_nvme.h | 3 ++- drivers

[PATCH v3 05/26] lpfc: Replace io_channels for nvme and fcp with general hdw_queues per cpu

2019-01-25 Thread James Smart
vectors Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 4 +- drivers/scsi/lpfc/lpfc_attr.c| 84 ++- drivers/scsi/lpfc/lpfc_debugfs.c | 152 ++-- drivers/scsi/lpfc/lpfc_debugfs.h | 65 +++--- drivers

[PATCH v3 07/26] lpfc: cleanup: Remove unused FCP_XRI_ABORT_EVENT slowpath event

2019-01-25 Thread James Smart
Both NVME and SCSI aborts are now processed off the CQ workqueue and do not generate events for the slowpath any more. Remove the unused event code. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 1 - drivers/scsi

[PATCH v3 01/26] lpfc: cleanup: remove nrport from nvme command structure

2019-01-25 Thread James Smart
But the fc discovery node pointer is alrady in the command structure so the dereferrence was unnecessary. Eliminated the nrport structure member and its use, which also eliminates the port-wide lock. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers

[PATCH v3 02/26] lpfc: cleanup: Remove excess check on NVME io submit code path

2019-01-25 Thread James Smart
lpfc_nvme_prep_io_cmd() checks for null pnode, but caller lpfc_nvme_fcp_io_submit() has already ensured it's non-null. remove the pnode null check Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_nvme.c | 2 +- 1 file chang

[PATCH v3 04/26] lpfc: Remove extra vector and SLI4 queue for Expresslane

2019-01-25 Thread James Smart
-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_crtn.h| 5 - drivers/scsi/lpfc/lpfc_debugfs.c | 36 +-- drivers/scsi/lpfc/lpfc_init.c| 225 ++- drivers/scsi/lpfc/lpfc_scsi.c| 9 +- drivers/scsi/lpfc/lpfc_sli.c

[PATCH v3 14/26] lpfc: Fix setting affinity hints to correlate with hardware queues

2019-01-25 Thread James Smart
or hardware queue resources could not scale to the cpu count). Correct the queue affinitization logic, when queue count is less than cpu count. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_attr.c | 38

[PATCH v3 26/26] lpfc: Update lpfc version to 12.2.0.0

2019-01-25 Thread James Smart
Update lpfc version to 12.2.0.0 Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h

[PATCH v3 25/26] lpfc: Update 12.2.0.0 file copyrights to 2019

2019-01-25 Thread James Smart
For files modifed as part of 12.2.0.0 patches, update copyright to 2019 Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- drivers/scsi/lpfc/lpfc.h | 2 +- drivers/scsi/lpfc/lpfc_attr.c | 2 +- drivers/scsi/lpfc/lpfc_crtn.h | 2 +- drivers/scsi/lpfc/lpfc_ct.c

[PATCH v3 17/26] lpfc: Rework EQ/CQ processing to address interrupt coalescing

2019-01-25 Thread James Smart
will only rearm as the processing thread exits. The immediately interrupt is also beneficial to idle or lower-processing CQ's as they get serviced immediately without being penalized by sharing an EQ with a more loaded CQ. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- v3:

[PATCH v3 12/26] lpfc: Adapt partitioned XRI lists to efficient sharing

2019-01-25 Thread James Smart
and their behaviors. Signed-off-by: Dick Kennedy Signed-off-by: James Smart --- v2: access_ok() arg list reduce to match kernel api change --- drivers/scsi/lpfc/lpfc.h | 26 +- drivers/scsi/lpfc/lpfc_attr.c| 9 + drivers/scsi/lpfc/lpfc_crtn.h| 16 + drivers/scsi/lpfc/lpfc_debu

[PATCH v3 22/26] lpfc: Fix default driver parameter collision for allowing NPIV support

2019-01-25 Thread James Smart
I can continue to allow NPIV support. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 3 ++- drivers/scsi/lpfc/lpfc_attr.c | 4 ++-- drivers/scsi/lpfc/lpfc_ct.c| 16 drivers/scsi

[PATCH v3 24/26] lpfc: Fix nvmet issues when link bounce under IO load

2019-01-25 Thread James Smart
val. Commonized lock handling around the abort processing routines. Prevent context release while still in ABTS list. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_nvmet.c | 50 +++--- 1 file changed,

[PATCH v3 18/26] lpfc: Utilize new IRQ API when allocating MSI-X vectors

2019-01-25 Thread James Smart
pci_irq_vector() usage. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_init.c | 162 -- 1 file changed, 13 insertions(+), 149 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers

[PATCH v3 21/26] lpfc: Rework locking on SCSI io completion

2019-01-25 Thread James Smart
new cmd lock. Ensure all flag changing and nulling of context pointers taken under lock. When adding lock to task management abort, realized it was missing other synchronization locks. Added that synchronization to match normal paths. Signed-off-by: Dick Kennedy Signed-off-by: James Smart

[PATCH v3 19/26] lpfc: Resize cpu maps structures based on possible cpus

2019-01-25 Thread James Smart
The work done to date utilized the number of present cpus when sizing per-cpu structures. Structures should have been sized based on the max possible cpu count. Convert the driver over to possible cpu count for sizing allocation. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed

[PATCH v3 15/26] lpfc: Support non-uniform allocation of MSIX vectors to hardware queues

2019-01-25 Thread James Smart
relationships with the per-cpu hardware queues so they can function independently. MSIX vectors will be equitably split been cpu sockets/cores and then the per-cpu hardware queues will be mapped to the vectors most efficient for them. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by

[PATCH v3 20/26] lpfc: Enable SCSI and NVME fc4s by default

2019-01-25 Thread James Smart
Now that performance mods don't split resources by protocol and enable both protocols by default, there's no reason not to enable concurrent SCSI and NVME fc4 support. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_

[PATCH v3 23/26] lpfc: Correct upcalling nvmet_fc transport during io done downcall

2019-01-25 Thread James Smart
. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 1 + drivers/scsi/lpfc/lpfc_nvmet.c | 247 ++--- drivers/scsi/lpfc/lpfc_nvmet.h | 1 + 3 files changed, 137 insertions(+), 112

[PATCH v3 16/26] lpfc: cleanup: convert eq_delay to usdelay

2019-01-25 Thread James Smart
max applies to a single cpu and the value will be replicated to all cpus. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_attr.c | 8 ++- drivers/scsi/lpfc/lpfc_init.c | 9 ++- drivers/scsi/lpfc/lpfc_sli.c |

Re: [PATCH v3 11/26] lpfc: Synchronize hardware queues with SCSI MQ interface

2019-01-28 Thread James Smart
On 1/26/2019 1:16 AM, Hannes Reinecke wrote: +    } else +    shost->nr_hw_queues = 1;   /*    * Set initial can_queue value since 0 is no longer supported and Why do you restrict full mq support to SLE-4? The original code seems to imply that older revisions would be able to do mq

Re: [PATCH v3 21/26] lpfc: Rework locking on SCSI io completion

2019-01-28 Thread James Smart
On 1/26/2019 1:43 AM, Hannes Reinecke wrote: Hmm. Wouldn't it be better here to set lpfc_ncmd->nvmeCmd to NULL first, then release the lock, and _then_ call nCmd->done()? With the current code there might be a risk of accidental command starvation, as ->done() is called before the command itself

[PATCH v4 00/26] lpfc updates for 12.2.0.0

2019-01-28 Thread James Smart
Tweaked patch 17 to do auto-eq-delays only if ganging up on a cpu. V4: patch 11: add comment per review patch 21: unlock before io done() calls per review James Smart (26): lpfc: cleanup: remove nrport from nvme command structure lpfc: cleanup: Remove excess check on NVME io submit code p

[PATCH v4 02/26] lpfc: cleanup: Remove excess check on NVME io submit code path

2019-01-28 Thread James Smart
lpfc_nvme_prep_io_cmd() checks for null pnode, but caller lpfc_nvme_fcp_io_submit() has already ensured it's non-null. remove the pnode null check Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_nvme.c | 2 +- 1 file chang

[PATCH v4 25/26] lpfc: Update 12.2.0.0 file copyrights to 2019

2019-01-28 Thread James Smart
For files modifed as part of 12.2.0.0 patches, update copyright to 2019 Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc.h | 2 +- drivers/scsi/lpfc/lpfc_attr.c | 2 +- drivers/scsi/lpfc/lpfc_crtn.h | 2

[PATCH v4 01/26] lpfc: cleanup: remove nrport from nvme command structure

2019-01-28 Thread James Smart
But the fc discovery node pointer is alrady in the command structure so the dereferrence was unnecessary. Eliminated the nrport structure member and its use, which also eliminates the port-wide lock. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers

[PATCH v4 14/26] lpfc: Fix setting affinity hints to correlate with hardware queues

2019-01-28 Thread James Smart
or hardware queue resources could not scale to the cpu count). Correct the queue affinitization logic, when queue count is less than cpu count. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke --- drivers/scsi/lpfc/lpfc_attr.c | 38

<    3   4   5   6   7   8   9   10   11   12   >