From patchwork Fri Nov 23 16:56:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Radulescu X-Patchwork-Id: 1002480 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="u9y9XTVo"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 431jCF00ymz9s7T for ; Sat, 24 Nov 2018 03:56:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2633146AbeKXDlx (ORCPT ); Fri, 23 Nov 2018 22:41:53 -0500 Received: from mail-eopbgr10064.outbound.protection.outlook.com ([40.107.1.64]:22029 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2633139AbeKXDlw (ORCPT ); Fri, 23 Nov 2018 22:41:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=R0LZx/jAWbLtXAZRWGzovLV0rXYN8Rp3OfIKW8DnnJI=; b=u9y9XTVoNqHtcTW++DRAv8ffpyzkAbmfRpfT1F3acFB23WvHz9boY69jIE/4pXMXQQ/YNwKyjnO+caQfhVgIMKCpjZ0pn4vKrEGczROGaPFo99dIog2KboJr9xP1dnxEVG4x09nZgVONPHK7/5kDWFpCXYk/u3taTHm5CAo/ofY= Received: from AM0PR04MB4994.eurprd04.prod.outlook.com (20.177.40.15) by AM0PR04MB5041.eurprd04.prod.outlook.com (20.177.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.27; Fri, 23 Nov 2018 16:56:36 +0000 Received: from AM0PR04MB4994.eurprd04.prod.outlook.com ([fe80::c426:6b56:b6d2:c8f2]) by AM0PR04MB4994.eurprd04.prod.outlook.com ([fe80::c426:6b56:b6d2:c8f2%3]) with mapi id 15.20.1339.030; Fri, 23 Nov 2018 16:56:36 +0000 From: Ioana Ciocoi Radulescu To: "netdev@vger.kernel.org" , "davem@davemloft.net" CC: Ioana Ciornei Subject: [PATCH net-next 7/8] dpaa2-eth: Cleanup channel stats Thread-Topic: [PATCH net-next 7/8] dpaa2-eth: Cleanup channel stats Thread-Index: AQHUg01+KYmhm3BVz0ey4WWmqD9Jyg== Date: Fri, 23 Nov 2018 16:56:36 +0000 Message-ID: <1542992186-26028-8-git-send-email-ruxandra.radulescu@nxp.com> References: <1542992186-26028-1-git-send-email-ruxandra.radulescu@nxp.com> In-Reply-To: <1542992186-26028-1-git-send-email-ruxandra.radulescu@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0802CA0024.eurprd08.prod.outlook.com (2603:10a6:800:aa::34) To AM0PR04MB4994.eurprd04.prod.outlook.com (2603:10a6:208:c7::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=ruxandra.radulescu@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [86.34.165.90] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR04MB5041; 6:75ouz8qXQ/6eJVFrSV+jvnbZM5gfIUOqbZXX1b9QGrv2GTFJYSinmCShij+Xaj767GmfSK6HNY+UjuG2R7qe7o8ZN7RQ+bqHVVkGo0TslN+sq33epKmb23getPvV1gVoQxwGcJHGZxJtmsaJFCwbbTcu8bXW9YlbVjfOhy3khw/Amns0z6xboaRIemrbmCnpiz4YT8pb462RtJa1xk8CXyUt0tXMhfSI0kspoMVdJyp2OCeeKLeRj7PcC/lH+Cq5dKU/kSn26OEeZ3Zy2002j8Q0laFD72NwFDLiRdtC7rnEkkZpgshX7g244racc5HiFerSoVJWE9fUKrz7Ld99p4o/W7n0Y7LvhsMYAsGue83d344f9CP0zgNZ9JIBp4EhrYBUFuP991K1O9l/QHstWAFNABbkYax3gioHEIOdvAoNN21gaw0hfqznZrQhwRSTJr1VzzZKZx2E1P0fu7lrdg==; 5:c8+g/56T24xa0XCIgFHCKhsUm7S8lmlQujE3el7QIQCxsDSE0vJiY0SFpBI3JLwSFttVB7ylNmIGb5oXFY7QI4uGIQLOlyej1VBYxsRPEGTJenKiLhMWH/s+6MhblDjmkLGVaC67b1OY+O6jukA5ek7PzVBgyly3n5JbXACnGTc=; 7:VRKIshCMD89pD/ojJIg0jT2RfSywutnMrhpmsDH8KPN4aFFMMJgUHosL+rRe5KhID3Z9p6ad+ZxY5s+ZIEGGhgWMss8KDVqQBQe6JenZHa6MNZ/iqBtXn7AazO2+hFaQSyuZfak5uJa5jySNotlnnQ== x-ms-office365-filtering-correlation-id: 9671b934-7e8c-4d13-bd55-08d65164a0f0 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:AM0PR04MB5041; x-ms-traffictypediagnostic: AM0PR04MB5041: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(275809806118684)(185117386973197); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231442)(944501410)(52105112)(93006095)(93001095)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123560045)(201708071742011)(7699051)(76991095); SRVR:AM0PR04MB5041; BCL:0; PCL:0; RULEID:; SRVR:AM0PR04MB5041; x-forefront-prvs: 086597191B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(346002)(376002)(396003)(39860400002)(366004)(189003)(199004)(68736007)(8676002)(66066001)(81166006)(2616005)(446003)(11346002)(486006)(476003)(2906002)(3846002)(7736002)(6116002)(305945005)(25786009)(110136005)(6486002)(81156014)(14444005)(53936002)(316002)(6512007)(478600001)(8936002)(2900100001)(71200400001)(71190400001)(4326008)(5660300001)(86362001)(256004)(186003)(575784001)(106356001)(52116002)(76176011)(386003)(6436002)(97736004)(102836004)(2501003)(6506007)(105586002)(36756003)(99286004)(26005)(14454004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5041; H:AM0PR04MB4994.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: IrUwplTip5VT4ukLdub/K5USQdrICyyHoLjSqnT7dI6+HSSgXzYkoMBWmRPesPmwJn2Pk5MPZUcYtMgNqTZcHHoiY5sj62Xg8UPUICF7/nP5LQEElIOHWoDJXizvD4pRAqggP8hDuYpb2HK3UFFSzxLI1ApNBQCJW2Le99sqg9bWMS1vxqVG2S9lv5v3ZAQEMMK8Mxqlh+xOXwHK2j3nSgPFtDAufq1ZOmQLrgtuSn+4GE4hk7EaRPR4/qQa800xE/de60jKWLgkMSWVC8rUJMLNb4XRb4Yhzh9UBsY7uKBY5mcVeqpkvlzVhVVL1BwOXC+w15s36a3As92PMGqGt4EfbLA5u+zz+Bw10yvxFyw= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9671b934-7e8c-4d13-bd55-08d65164a0f0 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2018 16:56:36.0246 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5041 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Remove one unused counter. Move the Tx portal busy counter to the channel stats, since it logically belongs here. Reorder fields in channel stats structure to match the ethtool strings order and make it easier to print them with ethtool -S. Signed-off-by: Ioana Radulescu --- drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 3 +-- drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h | 10 ++++------ drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 18 ++++++------------ 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index 3dabee0..995a17d 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -456,7 +456,6 @@ static int consume_frames(struct dpaa2_eth_channel *ch, return 0; fq->stats.frames += cleaned; - ch->stats.frames += cleaned; /* A dequeue operation only pulls frames from a single queue * into the store. Return the frame queue as an out param. @@ -776,7 +775,7 @@ static netdev_tx_t dpaa2_eth_tx(struct sk_buff *skb, struct net_device *net_dev) if (err != -EBUSY) break; } - percpu_extras->tx_portal_busy += i; + fq->channel->stats.tx_portal_busy += i; if (unlikely(err < 0)) { percpu_stats->tx_errors++; /* Clean up everything, including freeing the skb */ diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h index 5530a0e..320c0d0 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h @@ -231,8 +231,6 @@ struct dpaa2_eth_drv_stats { __u64 tx_reallocs; __u64 rx_sg_frames; __u64 rx_sg_bytes; - /* Enqueues retried due to portal busy */ - __u64 tx_portal_busy; }; /* Per-FQ statistics */ @@ -243,14 +241,14 @@ struct dpaa2_eth_fq_stats { /* Per-channel statistics */ struct dpaa2_eth_ch_stats { + /* Enqueues retried due to portal busy */ + __u64 tx_portal_busy; /* Volatile dequeues retried due to portal busy */ __u64 dequeue_portal_busy; - /* Number of CDANs; useful to estimate avg NAPI len */ - __u64 cdan; - /* Number of frames received on queues from this channel */ - __u64 frames; /* Pull errors */ __u64 pull_err; + /* Number of CDANs; useful to estimate avg NAPI len */ + __u64 cdan; }; /* Maximum number of queues associated with a DPNI */ diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c index 26bd5a2..3aa7885 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c @@ -40,8 +40,8 @@ static char dpaa2_ethtool_extras[][ETH_GSTRING_LEN] = { "[drv] tx realloc frames", "[drv] rx sg frames", "[drv] rx sg bytes", - "[drv] enqueue portal busy", /* Channel stats */ + "[drv] enqueue portal busy", "[drv] dequeue portal busy", "[drv] channel pull errors", "[drv] cdan", @@ -174,8 +174,6 @@ static void dpaa2_eth_get_ethtool_stats(struct net_device *net_dev, int j, k, err; int num_cnt; union dpni_statistics dpni_stats; - u64 cdan = 0; - u64 portal_busy = 0, pull_err = 0; struct dpaa2_eth_priv *priv = netdev_priv(net_dev); struct dpaa2_eth_drv_stats *extras; struct dpaa2_eth_ch_stats *ch_stats; @@ -212,16 +210,12 @@ static void dpaa2_eth_get_ethtool_stats(struct net_device *net_dev, } i += j; - for (j = 0; j < priv->num_channels; j++) { - ch_stats = &priv->channel[j]->stats; - cdan += ch_stats->cdan; - portal_busy += ch_stats->dequeue_portal_busy; - pull_err += ch_stats->pull_err; + /* Per-channel stats */ + for (k = 0; k < priv->num_channels; k++) { + ch_stats = &priv->channel[k]->stats; + for (j = 0; j < sizeof(*ch_stats) / sizeof(__u64); j++) + *((__u64 *)data + i + j) += *((__u64 *)ch_stats + j); } - - *(data + i++) = portal_busy; - *(data + i++) = pull_err; - *(data + i++) = cdan; } static int prep_eth_rule(struct ethhdr *eth_value, struct ethhdr *eth_mask,