scsi: lpfc: Remove lock contention target write path
Lower IOps performance with write operations. Perf tool shows lock contention in dma_pool_alloc and dma_pool_free related to the txrdy_payload_pool. The allocations are for dma buffers for XFER_RDY's, which actually are not needed for the FCP_TRECEIVE command as the command contents are used by the adapter to generate the IU. Remove the allocations and the associated buffer pool. Rather than leaving NULLs in buffer pointer locations, set command and sgl to indicate skipped SGLE indexes. Link: https://lore.kernel.org/r/20191018211832.7917-10-jsmart2021@gmail.com Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

parent
22770cbabf
commit
ea85a20cd5
@@ -7556,18 +7556,10 @@ lpfc_create_shost(struct lpfc_hba *phba)
|
||||
|
||||
if (phba->nvmet_support) {
|
||||
/* Only 1 vport (pport) will support NVME target */
|
||||
if (phba->txrdy_payload_pool == NULL) {
|
||||
phba->txrdy_payload_pool = dma_pool_create(
|
||||
"txrdy_pool", &phba->pcidev->dev,
|
||||
TXRDY_PAYLOAD_LEN, 16, 0);
|
||||
if (phba->txrdy_payload_pool) {
|
||||
phba->targetport = NULL;
|
||||
phba->cfg_enable_fc4_type = LPFC_ENABLE_NVME;
|
||||
lpfc_printf_log(phba, KERN_INFO,
|
||||
LOG_INIT | LOG_NVME_DISC,
|
||||
"6076 NVME Target Found\n");
|
||||
}
|
||||
}
|
||||
phba->targetport = NULL;
|
||||
phba->cfg_enable_fc4_type = LPFC_ENABLE_NVME;
|
||||
lpfc_printf_log(phba, KERN_INFO, LOG_INIT | LOG_NVME_DISC,
|
||||
"6076 NVME Target Found\n");
|
||||
}
|
||||
|
||||
lpfc_debugfs_initialize(vport);
|
||||
|
Reference in New Issue
Block a user