From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.5 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D27C7C43381 for ; Thu, 21 Feb 2019 14:35:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9ACA62075C for ; Thu, 21 Feb 2019 14:35:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="JpE+iqT4" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726075AbfBUOfM (ORCPT ); Thu, 21 Feb 2019 09:35:12 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:38628 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725858AbfBUOfM (ORCPT ); Thu, 21 Feb 2019 09:35:12 -0500 Received: by mail-wr1-f65.google.com with SMTP id v13so30621258wrw.5 for ; Thu, 21 Feb 2019 06:35:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=HDfnyK14WHR7PCjKY4dwoY4EqIsdv5FkD1oLVOwtdZk=; b=JpE+iqT4xqvulKs5PBoUcDunFfXyXxxlmXM5o3v7TGZkVBwLeDES9SJsdw1v1tennv yDMDGGscFAyLxCCYzRTETWS5qrc5MxtrJdnKm4hdFhN4JuLAHMRiz4gQQegvSz0vFBlB /kcifPoPLptxgjVauaUyuI+4I6dLJrb9gIaGS4TRXW/6r8iefZFnMHepwZfthsOT5Yk3 W6gEFOs6VPWkYHupek+laq8IB998djlhpNB5UeYww4I+wbd+jHVd0m8feXRKEKyB63I3 EtYR7rAAS0flmBlXc/HpKtvW0XkEm+Q4WPw7xM5NeYcRDzznRESpJWUSQ0Jjs6wlvyeh Z6xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=HDfnyK14WHR7PCjKY4dwoY4EqIsdv5FkD1oLVOwtdZk=; b=EERo6HzE7Xc4pCq4wu3GcZpRv5PyPi9KT73E8yO387wUAk8PzABeV6lAxZ8ZaTiXUe 4WVWsWxgm6zXeFWl7PuTF2UKRsJkZJdNi+tpsZK6uutvFDpKKcxBvbteIufgyQV3iwte B/FaKS1NdLR3Tjc0IhC0zCJDzolnWkF1PRlL/f89G3ab7vL2rBq1jj+UniONSzz7cWWy Q2Ai2/74GelvFeBk7iH2RaYHrPhQChm+2CAsRWtOsMV81bUC7z8c9rYxq9D89DvcllEm UR7vnsmIKRvrkaYAPw6x99zxbmLspH6vrasFxPCmQaqBgsnK3GAeQZ/l4sBugTIAUecH MYWQ== X-Gm-Message-State: AHQUAua2iwix2O7TJO55Ot4jPxRuo0dOv8B6XdrE931YzOL2d4J7YTyM LVUiOKz5uMHHSdLQ6mLmOBodmg== X-Google-Smtp-Source: AHgI3IZjrFZautt7V8Jlkc7NZ0DTquffuJ8ZVAvkGPlsiIzmvVPryBQEj4ff/qr3QATy5L4/cdZmOg== X-Received: by 2002:adf:fd46:: with SMTP id h6mr28183489wrs.170.1550759709993; Thu, 21 Feb 2019 06:35:09 -0800 (PST) Received: from localhost (ip-89-102-139-73.net.upcbroadband.cz. [89.102.139.73]) by smtp.gmail.com with ESMTPSA id 93sm16435729wrh.15.2019.02.21.06.35.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 21 Feb 2019 06:35:09 -0800 (PST) Date: Thu, 21 Feb 2019 15:25:30 +0100 From: Jiri Pirko To: Aya Levin Cc: David Ahern , netdev@vger.kernel.org, Jiri Pirko , Moshe Shemesh , Eran Ben Elisha Subject: Re: [PATCH v2 iproute2-next 05/11] devlink: Add devlink health show command Message-ID: <20190221142530.GP2312@nanopsycho> References: <1550756567-18227-1-git-send-email-ayal@mellanox.com> <1550756567-18227-6-git-send-email-ayal@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1550756567-18227-6-git-send-email-ayal@mellanox.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Thu, Feb 21, 2019 at 02:42:41PM CET, ayal@mellanox.com wrote: >Add devlink health show command which displays status and configuration >info on a specific reporter on a device or dump the info on all >reporters on all devices. The patch also contains helper functions to What "patch"? Please format the description as you would command the codebase what to do. >display status and dump's time stamp. [...] >+static void pr_out_health(struct dl *dl, struct nlattr **tb_health) >+{ >+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; >+ enum devlink_health_reporter_state state; >+ const struct nlattr *attr; >+ uint64_t time_ms; >+ int err; >+ >+ state = DEVLINK_HEALTH_REPORTER_STATE_HEALTHY; Pointless assignment. >+ >+ err = mnl_attr_parse_nested(tb_health[DEVLINK_ATTR_HEALTH_REPORTER], >+ attr_cb, tb); >+ if (err != MNL_CB_OK) >+ return; >+ >+ if (!tb[DEVLINK_ATTR_HEALTH_REPORTER_NAME] || >+ !tb[DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT] || >+ !tb[DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT] || >+ !tb[DEVLINK_ATTR_HEALTH_REPORTER_STATE]) >+ return; >+ >+ pr_out_handle_start_arr(dl, tb_health); >+ >+ pr_out_str(dl, "name", >+ mnl_attr_get_str(tb[DEVLINK_ATTR_HEALTH_REPORTER_NAME])); >+ if (!dl->json_output) { >+ __pr_out_newline(); >+ __pr_out_indent_inc(); >+ } >+ state = mnl_attr_get_u8(tb[DEVLINK_ATTR_HEALTH_REPORTER_STATE]); >+ pr_out_str(dl, "state", health_state_name(state)); >+ pr_out_u64(dl, "error", >+ mnl_attr_get_u64(tb[DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT])); >+ pr_out_u64(dl, "recover", >+ mnl_attr_get_u64(tb[DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT])); >+ if (tb[DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS]) { >+ char dump_date[HEALTH_REPORTER_TIMESTAMP_FMT_LEN]; >+ char dump_time[HEALTH_REPORTER_TIMESTAMP_FMT_LEN]; Newline here please. >+ attr = tb[DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS]; >+ time_ms = mnl_attr_get_u64(attr); >+ format_logtime(time_ms, dump_date, dump_time); >+ >+ pr_out_str(dl, "last_dump_date", dump_date); >+ pr_out_str(dl, "last_dump_time", dump_time); >+ } [...] >@@ -5776,7 +5958,11 @@ static int dl_cmd(struct dl *dl, int argc, char **argv) > } else if (dl_argv_match(dl, "region")) { > dl_arg_inc(dl); > return cmd_region(dl); >+ } else if (dl_argv_match(dl, "health")) { >+ dl_arg_inc(dl); >+ return cmd_health(dl); > } >+ Please avoid newlines like this. Unrelated to the patch. > pr_err("Object \"%s\" not found\n", dl_argv(dl)); > return -ENOENT; > } >-- >2.14.1 >