Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp190001ybk; Fri, 8 May 2020 23:36:21 -0700 (PDT) X-Google-Smtp-Source: APiQypLZa5pYApPb1Ts+IgQwJzggNCHnckhH8j1pxjCs0g1x8YvW/PuHXl2s1RaA2VtJu40BWJIh X-Received: by 2002:a05:6402:1773:: with SMTP id da19mr5116566edb.2.1589006181384; Fri, 08 May 2020 23:36:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589006181; cv=none; d=google.com; s=arc-20160816; b=sWMdsRiQeEa1qsKKecNWYJpL8z9tnWywJcklV9AdYVfGMGKOgscorefWBgL4W617J5 jc0bYV3uTAtLF7glGcwjXvSL9RkchxNu2+JmUDeNxyZlSWomzyoGqW1Om/Z5PY9LkUW4 iJy/nlqPy46JnjSo36DPnzwAXRxA+aBCW8txwb4SSPIzl9vFAKYaE2QgeNg04A/l1gMH E9ZzN/7QcicbFdeMCcuQFYfLoGLWHVhu7XmBwrT6wTVPPPUin7nv2dPpCcSR4G9VhAOV O0bsV2fXdnAcaMHyLj14+9P9j7LDI5eD5BoXc3lRG8XT0Cebw4Y+sPapUTKddedHibEh jHYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=r3/icDCoeCmjAYD8L9yr4pNwgvgXAZPIbBZGcN9ONZk=; b=lv3EbqXkNGeRBkIXbZJN44aNKVIH5Jk7NSdxshXvFhO+ecSMTl74StuuYZEWrFOnEd 0mwa/q0i7NqOCdfHzvJ0XTstWTNaj++Lahm4D7aqXTWx0fI0zXBeoUmHD0O+jYS03TLH DOETi5QMc+qPrLzUsDa7+saKuHhHPsbhpEWYhv3x5gTKIVRN81Qr+d+WP0RC37vlKLnu I5Zf+W+TRcCKlMC2rF8N9ReYIZPDMGJLPnhsKaKMncVTfSuqKj92p3uEwcTbP9wvYJvM 8SFUQeuv8bQUqvFhW87HZ40CIJ2iP8arAwPb+3w73F3IVFrGu92moirqEL1MSl2suv5M Xipg== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@marvell.com header.s=pfpt0818 header.b=k+rPI3tK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=marvell.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dv25si2291821ejb.270.2020.05.08.23.35.58; Fri, 08 May 2020 23:36:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=temperror (no key for signature) header.i=@marvell.com header.s=pfpt0818 header.b=k+rPI3tK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=marvell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728924AbgEIGee (ORCPT + 99 others); Sat, 9 May 2020 02:34:34 -0400 Received: from mx0b-0016f401.pphosted.com ([67.231.156.173]:49772 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726115AbgEIGee (ORCPT ); Sat, 9 May 2020 02:34:34 -0400 Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0496VNPO013928; Fri, 8 May 2020 23:33:34 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=pfpt0818; bh=r3/icDCoeCmjAYD8L9yr4pNwgvgXAZPIbBZGcN9ONZk=; b=k+rPI3tKtvXk4oJeZLJJiFo/0oGrocGPIxBTTZbOWZRcZpHXfo/f7/gkIC01+F7p7CeN dBpzrfi5bIN6/c2D51u43axCfCVR+kqEZcUlQwwAFmNPvJmPzP3cniAZ7aC7qEPlqirG osoMunv9PP/jsnO6YW0/QLtNSAUQ2jSw/G2uGyB3SRvLW/ywhnFF2edmURAhrySG7U1H gHo+z0uGs+AUfu1cVYfpdxE0tQmXSXPUkNMVQAa8x1xeKLVLXd1el7tIYYVF5h30EYWm NJOnXsg54rpdfMiQyM+F71LxhQIodvjd4a/XCvIipfyn+vydr8TovPZSbJjUHJLOCgWA VQ== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 30wjj7gubg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 08 May 2020 23:33:34 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 8 May 2020 23:33:32 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 8 May 2020 23:33:32 -0700 Received: from [10.193.46.2] (unknown [10.193.46.2]) by maili.marvell.com (Postfix) with ESMTP id DE8483F703F; Fri, 8 May 2020 23:32:56 -0700 (PDT) Subject: Re: [EXT] [PATCH 09/15] qed: use new module_firmware_crashed() To: Luis Chamberlain , CC: , , , , , , , , , , , , , , , , , , , , , , , Ariel Elior , GR-everest-linux-l2 References: <20200509043552.8745-1-mcgrof@kernel.org> <20200509043552.8745-10-mcgrof@kernel.org> From: Igor Russkikh Message-ID: <2aaddb69-2292-ff3f-94c7-0ab9dbc8e53c@marvell.com> Date: Sat, 9 May 2020 09:32:51 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Thunderbird/76.0 MIME-Version: 1.0 In-Reply-To: <20200509043552.8745-10-mcgrof@kernel.org> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216,18.0.676 definitions=2020-05-09_01:2020-05-08,2020-05-09 signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > This makes use of the new module_firmware_crashed() to help > annotate when firmware for device drivers crash. When firmware > crashes devices can sometimes become unresponsive, and recovery > sometimes requires a driver unload / reload and in the worst cases > a reboot. > > Using a taint flag allows us to annotate when this happens clearly. > > Cc: Ariel Elior > Cc: GR-everest-linux-l2@marvell.com > Signed-off-by: Luis Chamberlain > --- > drivers/net/ethernet/qlogic/qed/qed_debug.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/qlogic/qed/qed_debug.c > b/drivers/net/ethernet/qlogic/qed/qed_debug.c > index f4eebaabb6d0..9cc6287b889b 100644 > --- a/drivers/net/ethernet/qlogic/qed/qed_debug.c > +++ b/drivers/net/ethernet/qlogic/qed/qed_debug.c > @@ -7854,6 +7854,7 @@ int qed_dbg_all_data(struct qed_dev *cdev, void > *buffer) > REGDUMP_HEADER_SIZE, > &feature_size); > if (!rc) { > + module_firmware_crashed(); > *(u32 *)((u8 *)buffer + offset) = > qed_calc_regdump_header(cdev, > PROTECTION_OVERRIDE, > cur_engine, > @@ -7869,6 +7870,7 @@ int qed_dbg_all_data(struct qed_dev *cdev, void > *buffer) > rc = qed_dbg_fw_asserts(cdev, (u8 *)buffer + offset + > REGDUMP_HEADER_SIZE, > &feature_size); > if (!rc) { > + module_firmware_crashed(); > *(u32 *)((u8 *)buffer + offset) = > qed_calc_regdump_header(cdev, FW_ASSERTS, > cur_engine, > feature_size, > @@ -7906,6 +7908,7 @@ int qed_dbg_all_data(struct qed_dev *cdev, void > *buffer) > rc = qed_dbg_grc(cdev, (u8 *)buffer + offset + > REGDUMP_HEADER_SIZE, &feature_size); > if (!rc) { > + module_firmware_crashed(); > *(u32 *)((u8 *)buffer + offset) = > qed_calc_regdump_header(cdev, GRC_DUMP, > cur_engine, Hi Luis, qed_dbg_all_data is being used to gather debug dump from device. Failures inside it may happen due to various reasons, but they normally do not indicate FW failure. So I think its not a good place to insert this call. Its hard to find exact good place to insert it in qed. One more thing is that AFAIU taint flag gets permanent on kernel, but for example our device can recover itself from some FW crashes, thus it'd be transparent for user. Whats the logical purpose of module_firmware_crashed? Does it mean fatal unrecoverable error on device? Thanks, Igor