Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp4577645rwb; Tue, 6 Sep 2022 09:22:25 -0700 (PDT) X-Google-Smtp-Source: AA6agR6eAcOPxm7zheijwRnv/MHcZRZj4EErGxxJut7x5208Jt0OJXqr0PCwLdg6LBz4s/W/h2XC X-Received: by 2002:a17:90b:3e83:b0:200:5585:ab26 with SMTP id rj3-20020a17090b3e8300b002005585ab26mr12839737pjb.126.1662481344679; Tue, 06 Sep 2022 09:22:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662481344; cv=none; d=google.com; s=arc-20160816; b=XtX6vzcqMcbkCHSAeqQdoPU0s0ViGq6Vv54+TnX84pXFCXIUi7iH3sxA/Sm0lN2I9n r8VidrtIewLatysezZTi+fsAxSfZh3o8iRLmTBn96EBX7Tf2mYZRjA1oUthsh5ZrKbeu UQcJeaOoJ3w280V4tLWr7aey3eiQHMs7w+pSiTwQ91/9qfvJ02cFwszA1CcZoNw4v/7Q GXTBc0o5vp0UzCic4cidD+8K4iv9EDi5cFflP6Yz0B/P/2FTHihIuWIzu2ZxKZulkA/U eXY+yivUizuGkCCKtz+LysowxJ8oJyNiSh5iTBeSwVo6nKq4L2vp8KJ6VSq2lCUrMMi2 ui3g== 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=hwDO3lh9co9ce7VzTTAM6qzEd02lKJZr+LB/yV2tdYQ=; b=dDsSJDFoBHWGdmbREoDMhVCot9j5A8IpPH3b4BAh1ko30A6FIzSVuVVVjnhD/DmW/B q7F/Z9kTG8x0bgPcAAylPtr5tFRY7IYvO+Gm88f7LY9XmZ07t9OqD8xI5d14c5cLpT+6 BLhcL1px7uE/L+fmVyO6+mFCfaWTaTy+leJtVjSqUp7E0dBwsfK0HFEMFG6JtyYqhl61 su6Egw81i4AyHma5iZYo/vD2JusB1+fK6+I27PRpenZi+4ORP9PckBVKyP7RgSLOeE4n pNGvqqmpSRjYnJ66Ty7troYk5tvBSFZunbTtkEx+FjiyMN0b/cG4M2lpbWlnpwXjgrla LaSQ== 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 z8-20020a170902ccc800b00176675b0cf2si14750776ple.381.2022.09.06.09.22.10; Tue, 06 Sep 2022 09:22:24 -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 S238265AbiIFP5S (ORCPT + 99 others); Tue, 6 Sep 2022 11:57:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233794AbiIFPzl (ORCPT ); Tue, 6 Sep 2022 11:55:41 -0400 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 13D86193C7; Tue, 6 Sep 2022 08:14:40 -0700 (PDT) Received: from fraeml738-chm.china.huawei.com (unknown [172.18.147.226]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4MMTS31SZrz6H76q; Tue, 6 Sep 2022 23:13:55 +0800 (CST) Received: from lhrpeml500003.china.huawei.com (7.191.162.67) by fraeml738-chm.china.huawei.com (10.206.15.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 17:14:37 +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; Tue, 6 Sep 2022 16:14:35 +0100 From: John Garry To: , , , CC: , , , , , John Garry Subject: [PATCH v3 0/6] libsas and drivers: NCQ error handling Date: Tue, 6 Sep 2022 23:08:04 +0800 Message-ID: <1662476890-15467-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,T_SCC_BODY_TEXT_LINE 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 v6.0-rc4 [0] https://lore.kernel.org/linux-scsi/8fb3b093-55f0-1fab-81f4-e8519810a978@huawei.com/ Changes since v2: - Stop sending SATA_ABORT all for pm8001 handling - Make "reset" optional in sas_ata_device_link_abort() 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: pm8001: Modify task abort handling for SATA task scsi: libsas: Add sas_ata_device_link_abort() scsi: pm8001: Use sas_ata_device_link_abort() to handle NCQ errors scsi: hisi_sas: Don't issue ATA softreset in hisi_sas_abort_task() scsi: libsas: Make sas_{alloc, alloc_slow, free}_task() private Xingui Yang (1): scsi: hisi_sas: Add SATA_DISK_ERR bit handling for v3 hw drivers/scsi/hisi_sas/hisi_sas_main.c | 5 +- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 22 ++- 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 | 186 ++++--------------------- 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 + 11 files changed, 96 insertions(+), 335 deletions(-) -- 2.35.3