lkml.org 
[lkml]   [2022]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.15 02/23] scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX
    Date
    From: Tony Battersby <tonyb@cybernetics.com>

    [ Upstream commit 53661ded2460b414644532de6b99bd87f71987e9 ]

    This partially reverts commit d2b292c3f6fd ("scsi: qla2xxx: Enable ATIO
    interrupt handshake for ISP27XX")

    For some workloads where the host sends a batch of commands and then
    pauses, ATIO interrupt coalesce can cause some incoming ATIO entries to be
    ignored for extended periods of time, resulting in slow performance,
    timeouts, and aborted commands.

    Disable interrupt coalesce and re-enable the dedicated ATIO MSI-X
    interrupt.

    Link: https://lore.kernel.org/r/97dcf365-89ff-014d-a3e5-1404c6af511c@cybernetics.com
    Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
    Reviewed-by: Nilesh Javali <njavali@marvell.com>
    Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/qla2xxx/qla_target.c | 10 ++--------
    1 file changed, 2 insertions(+), 8 deletions(-)

    diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
    index 7ab3c9e4d4783..b86f6e1f21b5c 100644
    --- a/drivers/scsi/qla2xxx/qla_target.c
    +++ b/drivers/scsi/qla2xxx/qla_target.c
    @@ -6961,14 +6961,8 @@ qlt_24xx_config_rings(struct scsi_qla_host *vha)

    if (ha->flags.msix_enabled) {
    if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) {
    - if (IS_QLA2071(ha)) {
    - /* 4 ports Baker: Enable Interrupt Handshake */
    - icb->msix_atio = 0;
    - icb->firmware_options_2 |= cpu_to_le32(BIT_26);
    - } else {
    - icb->msix_atio = cpu_to_le16(msix->entry);
    - icb->firmware_options_2 &= cpu_to_le32(~BIT_26);
    - }
    + icb->msix_atio = cpu_to_le16(msix->entry);
    + icb->firmware_options_2 &= cpu_to_le32(~BIT_26);
    ql_dbg(ql_dbg_init, vha, 0xf072,
    "Registering ICB vector 0x%x for atio que.\n",
    msix->entry);
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-08-30 19:26    [W:4.719 / U:0.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site