Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp4157204rwi; Mon, 17 Oct 2022 02:14:15 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6yYML5gPdh8BQpdE0CJdaT8rt+cqIcLN3RKhvwp+z6p/UcdCm+CU58zNKlFHvdvYmwox4L X-Received: by 2002:a05:6a00:f03:b0:563:210a:5ffb with SMTP id cr3-20020a056a000f0300b00563210a5ffbmr11620145pfb.70.1665998055057; Mon, 17 Oct 2022 02:14:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665998055; cv=none; d=google.com; s=arc-20160816; b=bzi45K+8Dao2KHcFi9QdIGq9UYSec/qi/S0ESFJ/oLuJT+u0byijGkncR18eGy1ffE 0U+xPZC7yfTy9i5/two5HfOdivQ4Qesd5HMyvRIe2nJ3MAgcY3G890z8SZ8Pv6HHc8aN CNHZ8YBxLKrJE7k5AqBL0s3xSVYbjMOoGWFRvEd7xvv6k+O8uHKl5RfLcnk/SOb81tZR nM+BLwIs3rBs03UTy4DQW+INkajZiB27kRvgF0DUCmHOr24aAQkIoQtGUxnvKDrRpWFs K7aGUhJcrdZceunyUjdfM3UjLNm/j3eBuZDkfSx58Vg9PGH4yPYZmIYyv/nx566J2AVe 2NZg== 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=GMQPA3LcpVGAo7DtXwuQ3cLYxEeRq8MdJHRogF/41L8=; b=OyzygbYk7CYobrqUA9yWCFBzfoQf6fZwWG1nl3qHndR34nthJTaxoNfdT/QipzNSmf UgCTUTAzwxlfVAUW1/7hT64+CAabdQ29ASmQ3ThsfG1jm2MNg4detkz9NZERMhiqDLtJ iSqApuAEX/+cqjqQ+eiB3RxSXA7G+YFt4zkFdYO1qoQaAR9+iKNYQqtC1esvIvoEiS1E /6atw8etZzjyxFykBoHK5cBFxjtnBB0DZfoeH5Q2RjlVZS3OzUtlAvpc+5h7X+XqI750 WBH5TNDCZZvl9BQMKWMRHah2Wml5TlBvuRCGh7mbbgDVCgzUb7WoOgjoZ6OaLEiTIykj 6xnA== 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 x13-20020a63cc0d000000b0044f6c11db34si11629644pgf.700.2022.10.17.02.14.02; Mon, 17 Oct 2022 02:14:15 -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 S230187AbiJQIuj (ORCPT + 99 others); Mon, 17 Oct 2022 04:50:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230017AbiJQIuY (ORCPT ); Mon, 17 Oct 2022 04:50:24 -0400 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6B6B23EA0; Mon, 17 Oct 2022 01:50:13 -0700 (PDT) Received: from fraeml701-chm.china.huawei.com (unknown [172.18.147.207]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4MrVzD57pQz6HJWT; Mon, 17 Oct 2022 16:49:12 +0800 (CST) Received: from lhrpeml500003.china.huawei.com (7.191.162.67) by fraeml701-chm.china.huawei.com (10.206.15.50) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2375.31; Mon, 17 Oct 2022 10:50:10 +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; Mon, 17 Oct 2022 09:50:08 +0100 From: John Garry To: , , , CC: , , , , , "John Garry" Subject: [PATCH v6 0/8] libsas and drivers: NCQ error handling Date: Mon, 17 Oct 2022 17:20:27 +0800 Message-ID: <1665998435-199946-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: dggems706-chm.china.huawei.com (10.3.19.183) 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. Finally with these changes we can make the libsas task alloc/free APIs private, which they should always have been. Based on v6.1-rc1 [0] https://lore.kernel.org/linux-scsi/8fb3b093-55f0-1fab-81f4-e8519810a978@huawei.com/ Changes since v5: - Change to set ATA_DRDY in sata dev fis for sas_ata_device_link_abort() and sas_ata_task_done() - Add Niklas' tags (thanks!) - Rebase Changes since v4: - Add Jason's tags (thanks) - Rebase 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 John Garry (6): 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 scsi: libsas: Update SATA dev FIS in sas_ata_task_done() 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 | 19 ++- drivers/scsi/libsas/sas_init.c | 3 - drivers/scsi/libsas/sas_internal.h | 4 + drivers/scsi/pm8001/pm8001_hwi.c | 186 ++++--------------------- drivers/scsi/pm8001/pm8001_sas.c | 14 +- drivers/scsi/pm8001/pm8001_sas.h | 5 - drivers/scsi/pm8001/pm80xx_hwi.c | 177 +++-------------------- include/scsi/libsas.h | 4 - include/scsi/sas_ata.h | 6 + 12 files changed, 148 insertions(+), 350 deletions(-) -- 2.35.3