Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp560237rwb; Thu, 22 Sep 2022 03:34:20 -0700 (PDT) X-Google-Smtp-Source: AMsMyM66aYKFVKvMyhQ6rI0uM1MNNVuNOcmKopZigiBTkyV5se6beis+NP1B+8XsjHBop3ED3D5j X-Received: by 2002:a17:906:6a14:b0:774:a998:d9a2 with SMTP id qw20-20020a1709066a1400b00774a998d9a2mr2115893ejc.496.1663842860527; Thu, 22 Sep 2022 03:34:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663842860; cv=none; d=google.com; s=arc-20160816; b=e6e/tJEz2B1qZGPMID0jWiLcWpawgpZ2mq1lsrbYQvzQTG0n6ifwyRqgzA1jlvU7N9 rEzUh0l7Wbz2ygUG2pYZNL1oBSL+WA0aEUmRLoPFhCvYUl4L0oGeSK1qhW4+DF2vRe83 8chE5BfP3uuXt/a+hidTK/dyQ68K1Yg2kEssmmH9XNcWhHxTJ8k830ymb3jbi3nF1DgB 1LQzosmG4UNTr7/cqk7MpfCFIzhBVkEg+ie0928YU3QYmLgms85CpaW7jZZRHYIk0u8z kShfl5CIKo96ZPD9X2pSU5wOKmKa8mYsnysS2LSxEBZSeP6hRdyZIJlra6F+T2mInsz3 SGhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=S5hukZchJV8kaaUDkYwm3ymrsJsepAAg8QFYs/QLpbQ=; b=eR/PVeWhAWC8xSjgS3IHK0jPXo1aTDUhYjRpJwBMT74fwTIPLkIyu30oLo0raRgtwB FlDzi4YWNhyrHg/7L7xIEb0J34JkZBFJP4oRgJQKBqSSGRegQl6PJi+jO6PandoGFqE+ ss9NQqxJ3IjxH955R+ITqr/0n0nI3BVL8hG4iBFT2Kmcs0eQ0JHVyFQJMa4gnkJp5x2K x6NvF0dJYH8ig5ROXgfk3aHp5oiRx0y9M99o31REu/LcqDPxKypCjypIdpL/FN/00dDf aOgjVFxelYqSWZUDi6etvAvhLgBNCjYPAm2JfZkrgYb/FyUWEzWiUBlgGadFN72euERB QdBg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r14-20020a05640251ce00b004515a8c347dsi5208938edd.500.2022.09.22.03.33.54; Thu, 22 Sep 2022 03:34:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231248AbiIVJx7 (ORCPT + 99 others); Thu, 22 Sep 2022 05:53:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49068 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231233AbiIVJxk (ORCPT ); Thu, 22 Sep 2022 05:53:40 -0400 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 35878D58A9; Thu, 22 Sep 2022 02:53:27 -0700 (PDT) Received: from fraeml736-chm.china.huawei.com (unknown [172.18.147.207]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4MY9TL4Ff9z689t8; Thu, 22 Sep 2022 17:48:38 +0800 (CST) Received: from lhrpeml500003.china.huawei.com (7.191.162.67) by fraeml736-chm.china.huawei.com (10.206.15.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 22 Sep 2022 11:53:25 +0200 Received: from localhost.localdomain (10.69.192.58) by lhrpeml500003.china.huawei.com (7.191.162.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 22 Sep 2022 10:53:22 +0100 From: John Garry To: , , , CC: , , , , John Garry Subject: [PATCH v4 0/7] libsas and drivers: NCQ error handling Date: Thu, 22 Sep 2022 17:46:51 +0800 Message-ID: <1663840018-50161-1-git-send-email-john.garry@huawei.com> X-Mailer: git-send-email 2.8.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.69.192.58] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To lhrpeml500003.china.huawei.com (7.191.162.67) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As reported in [0], the pm8001 driver NCQ error handling more or less duplicates what libata does in link error handling, as follows: - abort all commands - do autopsy with read log ext 10 command - reset the target to recover, if necessary Indeed for the hisi_sas driver we want to add similar handling for NCQ errors. This series add a new libsas API - sas_ata_device_link_abort() - to handle host NCQ errors, and fixes up pm8001 and hisi_sas drivers to use it. A difference in the pm8001 driver NCQ error handling is that we send SATA_ABORT per-task prior to read log ext10, but I feel that this should not make a difference to the error handling. Damien kindly tested previous the series for pm8001, but any further pm8001 testing would be appreciated as I have since tweaked pm8001 handling again. This is because the pm8001 driver hangs on my arm64 machine read log ext10 command. Finally with these changes we can make the libsas task alloc/free APIs private, which they should always have been. Based on mkp-scsi @ 6.1/scsi-staging 7f615c1b5986 ("scsi: scsi_transport_fc: Use %u for dev_loss_tmo") [0] https://lore.kernel.org/linux-scsi/8fb3b093-55f0-1fab-81f4-e8519810a978@huawei.com/ Changes since v3: - Add Damien's tags (thanks) - Modify hisi_sas processing as follows: - use sas_task_abort() for rejected IO - Modify abort task processing to issue softreset in certain circumstances - rebase Changes since v2: - Stop sending SATA_ABORT all for pm8001 handling - Make "reset" optional in sas_ata_device_link_abort() - Drop Jack's ACK Changes since v1: - Rename sas_ata_link_abort() -> sas_ata_device_link_abort() - Set EH RESET flag in sas_ata_device_link_abort() - Add Jack's Ack tags - Rebase John Garry (5): scsi: libsas: Add sas_ata_device_link_abort() scsi: hisi_sas: Move slot variable definition in hisi_sas_abort_task() scsi: pm8001: Modify task abort handling for SATA task scsi: pm8001: Use sas_ata_device_link_abort() to handle NCQ errors scsi: libsas: Make sas_{alloc, alloc_slow, free}_task() private Xingui Yang (2): scsi: hisi_sas: Add SATA_DISK_ERR bit handling for v3 hw scsi: hisi_sas: Modify v3 HW SATA disk error state completion processing drivers/scsi/hisi_sas/hisi_sas.h | 1 + drivers/scsi/hisi_sas/hisi_sas_main.c | 26 +++- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 53 ++++++- drivers/scsi/libsas/sas_ata.c | 12 ++ drivers/scsi/libsas/sas_init.c | 3 - drivers/scsi/libsas/sas_internal.h | 4 + drivers/scsi/pm8001/pm8001_hwi.c | 188 ++++--------------------- drivers/scsi/pm8001/pm8001_sas.c | 8 ++ drivers/scsi/pm8001/pm8001_sas.h | 4 - drivers/scsi/pm8001/pm80xx_hwi.c | 177 +++-------------------- include/scsi/libsas.h | 4 - include/scsi/sas_ata.h | 6 + 12 files changed, 143 insertions(+), 343 deletions(-) -- 2.35.3