Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp3067165imm; Sun, 1 Jul 2018 11:28:47 -0700 (PDT) X-Google-Smtp-Source: AAOMgpe+m4jmGIIjjs5mtQ4sDFtA/awIMp91Q6Chi1yTaNW7I3Sj2fiV8dmr+JXpI1L3VKxjGRSL X-Received: by 2002:a65:6301:: with SMTP id g1-v6mr11023667pgv.324.1530469727018; Sun, 01 Jul 2018 11:28:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530469726; cv=none; d=google.com; s=arc-20160816; b=h8LBe2kNFUEe2OQKq/ddGHOdcpi6lKvkXgppcpvZZ+qE1+q8N50hUcMzD9b0e3jm1z 7EfFWdJQiO1yjZek4CZe+VQmQGefxSwFB9fuRxgis3Yn61Xiw1GmKLm5puAzP6S1NNxK YFHQ/U7RQWh+CtR9ZFsjsSq3NR4xNnDcV5qaPLJ16I9ZkudncA96AjJJCBY2BLyxjT/o hcWdh4FAySzbqJnbDGKOYOW2IsBBbApZ5Qjkp5LGlyraR3pbl3pydKyQsv4PHSVjjmj4 lHmDamrqJdIOgwK5vTlj6YAN9GVBXodZsHodrVxcwVupg2iefyHrDWbghToDm+e7kDpn YtmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=uy07nW5Aw3KKeKxBN4bC2fOUUcmzRYKftMcLj/lfBVI=; b=SuDfs1owFtrA+ezGGn+zhEc+zuYveYCFPGKXmrLrhNt4ZbVzsxGHNCllNVvD2zRwfv myehEDioGrnpa9gODZ0zPYJfiOtYQtVROml+7x99hROEnAvcgoF3jqVLWgtQm0IjZK9Z l6dp3jvz8+ZSQkMTWcPwGoSg1qJ3VeMEEA7EUshOHJzxgMPp87aBFDvfgQkIsDE2pZqa OYVQZ/c6xBWlcsJrGj6PmN7qN6+ZnUN4aQRbIP4E8H/Hk68ha4cEHK8zHQYk1XJmmsUH 55Eexr1DlLYV2xOag3RaRMgBm0VG80bqQe2nNHjNXmHpiXSggvK8jMYgL6SJ8lISVgKv 293A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w21-v6si14792727pll.96.2018.07.01.11.28.32; Sun, 01 Jul 2018 11:28:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933748AbeGAQSH (ORCPT + 99 others); Sun, 1 Jul 2018 12:18:07 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:32942 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932924AbeGAQSC (ORCPT ); Sun, 1 Jul 2018 12:18:02 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id CD64449B; Sun, 1 Jul 2018 16:18:01 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Steffen Maier , Benjamin Block , "Martin K. Petersen" Subject: [PATCH 4.4 068/105] scsi: zfcp: fix missing REC trigger trace on terminate_rport_io for ERP_FAILED Date: Sun, 1 Jul 2018 18:02:18 +0200 Message-Id: <20180701153154.377436472@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180701153149.382300170@linuxfoundation.org> References: <20180701153149.382300170@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Steffen Maier commit d70aab55924b44f213fec2b900b095430b33eec6 upstream. For problem determination we always want to see when we were invoked on the terminate_rport_io callback whether we perform something or not. Temporal event sequence of interest with a long fast_io_fail_tmo of 27 sec: loose remote port t workqueue [s] zfcp_q_ IRQ zfcperp === ================== =================== ============================ 0 recv RSCN q p.test_link_work block rport start fast_io_fail_tmo send ADISC ELS 4 recv ADISC fail block zfcp_port port forced reopen send open port 12 recv open port fail q p.gid_pn_work zfcp_erp_wakeup (zfcp_erp_wait would return) GID_PN fail Before this point, we got a SCSI trace with tag "sctrpi1" on fast_io_fail, e.g. with the typical 5 sec setting. port.status |= ERP_FAILED If fast_io_fail_tmo triggers after this point, we missed a SCSI trace. workqueue fc_dl_ ================== 27 fc_timeout_fail_rport_io fc_terminate_rport_io zfcp_scsi_terminate_rport_io zfcp_erp_port_forced_reopen _zfcp_erp_port_forced_reopen if (port.status & ERP_FAILED) return; Therefore, write a trace before above early return. Example trace record formatted with zfcpdbf from s390-tools: Timestamp : ... Area : REC Subarea : 00 Level : 1 Exception : - CPU ID : .. Caller : 0x... Record ID : 1 ZFCP_DBF_REC_TRIG Tag : sctrpi1 SCSI terminate rport I/O LUN : 0xffffffffffffffff none (invalid) WWPN : 0x D_ID : 0x Adapter status : 0x... Port status : 0x... LUN status : 0x00000000 none (invalid) Ready count : 0x... Running count : 0x... ERP want : 0x03 ZFCP_ERP_ACTION_REOPEN_PORT_FORCED ERP need : 0xe0 ZFCP_ERP_ACTION_FAILED Signed-off-by: Steffen Maier Cc: #2.6.38+ Reviewed-by: Benjamin Block Signed-off-by: Martin K. Petersen Signed-off-by: Greg Kroah-Hartman --- drivers/s390/scsi/zfcp_erp.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c @@ -41,9 +41,13 @@ enum zfcp_erp_steps { * @ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: Forced port recovery. * @ZFCP_ERP_ACTION_REOPEN_ADAPTER: Adapter recovery. * @ZFCP_ERP_ACTION_NONE: Eyecatcher pseudo flag to bitwise or-combine with - * either of the other enum values. + * either of the first four enum values. * Used to indicate that an ERP action could not be * set up despite a detected need for some recovery. + * @ZFCP_ERP_ACTION_FAILED: Eyecatcher pseudo flag to bitwise or-combine with + * either of the first four enum values. + * Used to indicate that ERP not needed because + * the object has ZFCP_STATUS_COMMON_ERP_FAILED. */ enum zfcp_erp_act_type { ZFCP_ERP_ACTION_REOPEN_LUN = 1, @@ -51,6 +55,7 @@ enum zfcp_erp_act_type { ZFCP_ERP_ACTION_REOPEN_PORT_FORCED = 3, ZFCP_ERP_ACTION_REOPEN_ADAPTER = 4, ZFCP_ERP_ACTION_NONE = 0xc0, + ZFCP_ERP_ACTION_FAILED = 0xe0, }; enum zfcp_erp_act_state { @@ -378,8 +383,12 @@ static void _zfcp_erp_port_forced_reopen zfcp_erp_port_block(port, clear); zfcp_scsi_schedule_rport_block(port); - if (atomic_read(&port->status) & ZFCP_STATUS_COMMON_ERP_FAILED) + if (atomic_read(&port->status) & ZFCP_STATUS_COMMON_ERP_FAILED) { + zfcp_dbf_rec_trig(id, port->adapter, port, NULL, + ZFCP_ERP_ACTION_REOPEN_PORT_FORCED, + ZFCP_ERP_ACTION_FAILED); return; + } zfcp_erp_action_enqueue(ZFCP_ERP_ACTION_REOPEN_PORT_FORCED, port->adapter, port, NULL, id, 0);