Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp17567447ybl; Thu, 2 Jan 2020 07:52:09 -0800 (PST) X-Google-Smtp-Source: APXvYqxL16/uvZWuwV6zUHqctpHHg6W/lH0IjMnV/vYGnjdtSVw+02g4fAF8mIQ9in/B5qnU5AvU X-Received: by 2002:a9d:74c4:: with SMTP id a4mr7341779otl.119.1577980329118; Thu, 02 Jan 2020 07:52:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577980329; cv=none; d=google.com; s=arc-20160816; b=JrLo1OmB+X+3qqBYr482WdU+uXWrEqBJTus4n8LIW+YJ0Cvu+mL5bL1QibQwC9YWPT 07QHmLz15h9vfej+vaiI54F1pzE5KdJsLkomNKC6e6EqYGOBMPTqt1iEPGvlUYLaduPE G5T5iCD988VT58UJZwOjOyibK+zAchJpAMVcI4jTbEcEPOU1HQ4Mx2wAkxF3uC0RJPrh k2t+eG/hMsKMYn1KlRrJKNp5piXG9ZqDDjVkr3irC7Jte4iRJkEYIjU8TRokegY7dVyG eCZZqnAj8FYOHfoXyHT5FbsIuvP4oMj6dI1t4B9F1hz/XGY8Fors27HbwCshmQH8Ktgm kF7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=Zk5pAX30ofxWfNNLyrrb4XcjsQ00qe4OtGVhevNDX/E=; b=rBxIU7c4SxuzjGJns54KbyWZ8HXiJDFR/KffgId8u+Y65hwIJIYlFav0pnDk5+Ogwn R0Yo2RgAEtDVzPmmGhYNO1pG2ZL2t3MeJ9ReINaScoSrxeANAS2Q0JbxmR6KTzsV+R17 inLqcspSn94CWM3ginPhxdw4j+AZZVQ1CPwElqbltDB02ypgP0NGidBmfX68d0oqxtPn Ye0UjtpcMAi3fDY2nLjFC+KBNLnn43YjNEWULQkMj1AYisslo4tHzN8/eITzApIx3JZp OKs3pduHZfkeWHkAofyIPVcSpRbz4jwabpk1f5Lxor2LISBkfhvHocnL2NPvgk3gHWCD xHRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=DHJDIK1K; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z14si23689861oih.89.2020.01.02.07.51.56; Thu, 02 Jan 2020 07:52:09 -0800 (PST) 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; dkim=pass header.i=@broadcom.com header.s=google header.b=DHJDIK1K; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728780AbgABPvI (ORCPT + 99 others); Thu, 2 Jan 2020 10:51:08 -0500 Received: from mail-pj1-f68.google.com ([209.85.216.68]:51202 "EHLO mail-pj1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728665AbgABPvI (ORCPT ); Thu, 2 Jan 2020 10:51:08 -0500 Received: by mail-pj1-f68.google.com with SMTP id j11so3401671pjs.1 for ; Thu, 02 Jan 2020 07:51:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Zk5pAX30ofxWfNNLyrrb4XcjsQ00qe4OtGVhevNDX/E=; b=DHJDIK1KslrO4hnu6CEBxQoOTxXnyL/CgkBlPC7rJGAAswZl1QvLI3CnpB71Nb6dm8 9q6ltgO+IrzJa74sVOfC/o5TkBvTQ51nP1qLmEKgdXFrijdeGeLemvtNHsbgipOThh6j BbpezO1Iluda6aQd3N5be/jmXYXXXXCCgMJY0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Zk5pAX30ofxWfNNLyrrb4XcjsQ00qe4OtGVhevNDX/E=; b=Zp/8eEX7SgOiFSpOZDcfmpKTp/5Ly/ILuo2xDlOGFeA/mUFjAGOeBD1r4ZQ7eg5dGE 7JsdbOYyD9fJ8lIehzJAjEDyNKm6G+9jFov6eF+ELuKmr5VxgxlKbw4DSQo+wljekZWR K3fNF7By3kJ9KD7AT264hyCHgnL5PUNF+FdGLvFkYTFipWk7AAVKh8IZedcGSgytZ+b3 JKYtLAauWfFKKJPVSOJIz6Fs63QNP2BJxWgy8g0pOfdUHh0hOQdILFm9N1NVcWeNfMEI Kjf5gE13vG3+2IkQ40skd86PLiVsR3ymdu4MWR/XJYka7nMiFQy0cugfC47ci7Tnhbsg tbVw== X-Gm-Message-State: APjAAAXmJqD5BMBR6JFZk2KxfBfZ20tGF/c2qsVSW4xE4kt1HDN2DsZp V+NBmTD9NmfR8oReBUrjWLbK6g== X-Received: by 2002:a17:902:82cc:: with SMTP id u12mr80414885plz.342.1577980267271; Thu, 02 Jan 2020 07:51:07 -0800 (PST) Received: from Ninja.ibn.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id d2sm11499420pjv.18.2020.01.02.07.51.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 02 Jan 2020 07:51:06 -0800 (PST) From: Vikas Gupta To: Michael Chan , "David S. Miller" , Jiri Pirko , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: vasundhara-v.volam@broadcom.com, vikram.prakash@broadcom.com, Vikas Gupta Subject: [PATCH v1 1/3] devlink: add support for reporter recovery completion Date: Thu, 2 Jan 2020 21:18:09 +0530 Message-Id: <1577980091-25118-2-git-send-email-vikas.gupta@broadcom.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1577980091-25118-1-git-send-email-vikas.gupta@broadcom.com> References: <1577980091-25118-1-git-send-email-vikas.gupta@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is possible that a reporter recovery completion do not finish successfully when recovery is triggered via devlink_health_reporter_recover as recovery could be processed in different context. In such scenario an error is returned by driver when recover hook is invoked and successful recovery completion is intimated later. Expose devlink recover done API to update recovery stats. Signed-off-by: Vikas Gupta --- include/net/devlink.h | 2 ++ net/core/devlink.c | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/net/devlink.h b/include/net/devlink.h index 47f87b2..453f45c 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -1000,6 +1000,8 @@ int devlink_health_report(struct devlink_health_reporter *reporter, void devlink_health_reporter_state_update(struct devlink_health_reporter *reporter, enum devlink_health_reporter_state state); +void +devlink_health_reporter_recovery_done(struct devlink_health_reporter *reporter); bool devlink_is_reload_failed(const struct devlink *devlink); diff --git a/net/core/devlink.c b/net/core/devlink.c index 4c63c9a..e686ae6 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -4860,6 +4860,14 @@ devlink_health_reporter_state_update(struct devlink_health_reporter *reporter, } EXPORT_SYMBOL_GPL(devlink_health_reporter_state_update); +void +devlink_health_reporter_recovery_done(struct devlink_health_reporter *reporter) +{ + reporter->recovery_count++; + reporter->last_recovery_ts = jiffies; +} +EXPORT_SYMBOL_GPL(devlink_health_reporter_recovery_done); + static int devlink_health_reporter_recover(struct devlink_health_reporter *reporter, void *priv_ctx, struct netlink_ext_ack *extack) @@ -4876,9 +4884,8 @@ devlink_health_reporter_recover(struct devlink_health_reporter *reporter, if (err) return err; - reporter->recovery_count++; + devlink_health_reporter_recovery_done(reporter); reporter->health_state = DEVLINK_HEALTH_REPORTER_STATE_HEALTHY; - reporter->last_recovery_ts = jiffies; return 0; } -- 2.7.4