From patchwork Fri Aug 18 00:03:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 802984 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="vNZgWS//"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xYNbM4zCLz9t3p for ; Fri, 18 Aug 2017 10:03:43 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932077AbdHRADm (ORCPT ); Thu, 17 Aug 2017 20:03:42 -0400 Received: from mail-sn1nam01on0087.outbound.protection.outlook.com ([104.47.32.87]:55952 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753887AbdHRADk (ORCPT ); Thu, 17 Aug 2017 20:03:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=UJoOcTNXgAx8o6H1qZly5maQeJagLw9QkFUIInYN8o0=; b=vNZgWS//iBvINGBCWUKHNe58HHMqivdM12+KT0SEfdCXPDtTvsS3JJYQ1ajS2lx/uAZgDAyCxQL2bCN6yxxYGl/dIClj2isQJ/e0/NjqoNMvR7rvQlreNW9cYexNhF66n2GeQYlkj7zXZ/MX8tI0XXqqpFMoZAUH2xMBpPa87+0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by DM5PR12MB1148.namprd12.prod.outlook.com (10.168.236.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1362.18; Fri, 18 Aug 2017 00:03:38 +0000 From: Tom Lendacky Subject: [PATCH net-next v1 10/14] amd-xgbe: Add per queue Tx and Rx statistics To: netdev@vger.kernel.org Cc: David Miller Date: Thu, 17 Aug 2017 19:03:34 -0500 Message-ID: <20170818000334.10005.12505.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170818000201.10005.36182.stgit@tlendack-t1.amdoffice.net> References: <20170818000201.10005.36182.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR1301CA0017.namprd13.prod.outlook.com (10.174.164.158) To DM5PR12MB1148.namprd12.prod.outlook.com (10.168.236.143) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: da929486-3802-488b-b892-08d4e5cc9446 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1148; 3:TTEYaKLHTxOJqza2OaIOrUTBszLZ0shRPSh5c3kQwuqPleF/uCT05R0ls1/f1tCNxEly/AQ3PEMEWScaBEEllaNZCedLOeh6UJ8wTQhHOIs4ENXFnRCbgqRELGBd8euCQ8yCcSjGCI1C163tnwUMAzCgYWvfdNzosZ5rjo+BNqx2DSHR3ueu5gU2muuAfHup2i+4rXbP+ZyEggs8Svi0BjQ9srMgI4FxQgCztBU1p0DEA0YlbRDoF6hTVgsX8NhR; 25:viGmjV75qjRZ9RgceEW55J7HSBRIc2Y0fT3KpH9M4MEK2eK0+80hR+tA8aBtSpPosbNPGHJjGoBPFiTkCaFmmqfNVOZkBvdWZ0rnjTbmIOuGRhNMob0CP6DamSS/WvkdXh7tl6QKktLW9Lx1RjlG3gLVFCNYjs71xOOk8RqvGy947azHk6oc2zV+1frvYIyMKs1/ZCnfu6+RZHSAd88khNG1Y1mL7+XPxej/1iJIUFy6hnwIMRthIw9MGIxVjOcmnmnL00CW76BvwVv0pkNK7mQgIaJQJowCD8efiB6UloLc8Qncy5PABb2v9U2ImxITCUBq9ZhXZyZyjKYilPaSAA==; 31:ubVYfDUQVmNXVmpBOyk11ExJOTv8OetIZ3uzj65rizNOaHM63F+zqUZfbm7X/i5dqMelQ6AwE/bjZuM/ON/zH/cm6yEitm3MorX6goodmUajj4UJPvK9aO0vGmdFcsB6B9x3MflIU1Ix0jRc6OWktg3IfKA2lux7E4aHh19v8l3zq+IlkaQH2xQNB6nEoM5HbavHRgC2nXknijioEGIZnYSR654LlM099fLTXFKSIMI= X-MS-TrafficTypeDiagnostic: DM5PR12MB1148: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1148; 20:m1I/Z/JOYAMqYHsSvXBdR3lAot5aqBT/l24a5mfG59VJ+wLo+Cia+05500fz0AFR1y6/Hvvx21F0fAU+pW8EdSebsjvTiJmHTpwIiX/fhJfJE99wvjEUTZRXBcDLQvWkYREVajolj3JhevnfQGAWl1kc2zpzbGdowQEYIkD5sgHWvZ737zcGjSyvl1hPEnrgwxlzQdoZ4gUFco5E/2Ka+mlns0dxDof3gewvH6gtVMnyxTVomxdy/DZpBOQqgrfKoaTnLnX4VF7EoEN6Ce3hWIL2hYU10IMnhZZKGZ1bTlrb56CRK5jjfMSPhV9O4exxpE/MFxt3vswZad3wfSSHG36nd5wSegb7iOatUxr6UG8oLJAFzLsdScaYQSobmKctlE2y1d4UGcj8f/VsCJ4GtwKSAS8ImkRfL1KodtKindGwlr/KAnnar6Z/3mAgEZNEbuVpy4W1WVpkDGlUep4mmdNviwG8Z9cV+/Qe4AHf2HoRuUyfOee0GdudZcW+fHtc; 4:mhM+FjTZEavX8aHlomqh4l/Z864BdsClVCkrPKeCKnafwF6QK/wctBNMTeenvfgTEw9Dm5w564EY4LomGJxXAM514lQ6APBor1kh9IeE7HtmAaL3AyYCCd5SPk6F9/owXbOjhZSEAxgMvZ+NK8QV2mCm+hONDaPuhvBAqlZlmGIbnpY+2QLKME6XJng26xHY2EiLI0+hA3N7FCn3rRsrkVfyqhKTk/uE21225Fg9q0krV+pWlk58g94IsTrsLIXgK/lXpS8PNIhfj1HHvdlBXcAY5esD/63V2Coeo6NnELg= X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123562025)(20161123560025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR12MB1148; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR12MB1148; X-Forefront-PRVS: 040359335D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(199003)(189002)(66066001)(47776003)(6666003)(2906002)(6916009)(2950100002)(6506006)(55016002)(4326008)(110136004)(189998001)(69596002)(9686003)(53936002)(50466002)(478600001)(7350300001)(54356999)(76176999)(106356001)(83506001)(6116002)(101416001)(25786009)(103116003)(23676002)(68736007)(3846002)(1076002)(50986999)(105586002)(42186005)(5660300001)(86362001)(305945005)(2351001)(7736002)(72206003)(33646002)(2361001)(4001350100001)(81156014)(81166006)(53416004)(97746001)(97736004)(8676002)(230700001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1148; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ4OzIzOno2bDN3L3cxRUNWMHZGRGFCVVhWVzBxKzRr?= =?utf-8?B?YUZ2ZzRTNTBqZEx0bnI0d1FYYmdTK1lnaTdxRS9wNENvbUJER0FnOFdISm5a?= =?utf-8?B?cjQ4Sm8rTVhOVW5pcVR4bzlTKzZRbURRUHByYi9ON3oyU1Y0NGRlVk0wZFdy?= =?utf-8?B?d0JBK0g4VDc2cGRIaCtOd2hray84YS8zYjZWeTJmaVFuSUVVdWVpOTBiUnRQ?= =?utf-8?B?Y01JU29EU1hvbnFNRHNRR2xOb0ZZS0lra3JydVNQcWYrWjZUZmczRngxK1FC?= =?utf-8?B?NjBEUGFZRDVUWDVlcTFrWVEydzIrS2dYRUlKQzlqczB2Zko4SUpIZC9hVUJx?= =?utf-8?B?TXc0bTk3SkZDdDhRZForUHJJcjNySEhhUUsxZnZiRVpVOWo5b2s0QTNzU3ZV?= =?utf-8?B?cUp0VXlFQ0dlZE9FZjhtTWdkazJJeDV3dnZLL0NDSDM2WSt1WjB3YlJNSWIz?= =?utf-8?B?Nk9UbDV3czFWU1JXTnZuYXhNQWpkY0pQMkN6SENPOENndjhReVdZUGJ6N2FK?= =?utf-8?B?cmUrOGlGVFBYZVNnbDRId1FJd0ZUMXIraWgzdlVzc0hzQ3c3TFVsRCtYSlZY?= =?utf-8?B?Z0xTQlBsYXhBN1lKM01zdXJBRVBSeFhXTExveEZnVHljUzNhdVRJcEFoYjZr?= =?utf-8?B?SEFjUWhGOUlQb3hZYk54Z1VPMUtVcUZSZTNqMmdJUDdJZlRYMUxad3RScDNi?= =?utf-8?B?ZDFpMkxuNmJLK1VSeGF5OTRoR3ZpejF6Sm5OMEthb292K1lHbU1WSE1xaDlj?= =?utf-8?B?c2p6T2RFMFU2TmxJczZETGFPaFd0cDVaa2krVnhiNHg3ci9UTEEvOC83YUFG?= =?utf-8?B?Q1V0NHJxYS9ieWw4SUpNQm9PQjlTWDg5V2JOTTZVV3hpSFF2ZjRWZmdYUjQ4?= =?utf-8?B?S3VKWVRkMVhQNVE5M0UzWERlQnpzWGRNdnBXUzZ6QU5NSGxRa0YwdTJ2Nkw0?= =?utf-8?B?TXdGMWxmWHRzLzJKYnNkV1lXOEs4Zk1qT085WlJieGpnYVcxenNQdFUrc1JS?= =?utf-8?B?dDRRRGFRYWZDWDc1RXNnTjFFV2RiTEV2NkNlSnlpMFBScWc3SllPRjI1MkRw?= =?utf-8?B?WDFRRlNjTVROVmN3eVBOMHkrWGhBWHlMZmdBVTgzeFNmNVAyOXlZTGVuR1JX?= =?utf-8?B?Q0pMQW9nNWJtdmZvUUY4RktWRUZXV0M5bWRjcGRnc2pFRGNkSW9uaXJVdUNY?= =?utf-8?B?VTBsYjFmRUp4bnY3Y3ZmVFdPU2NSYUx0TklRMEdUbkdCeGd3bFF1SE5yNHZW?= =?utf-8?B?Y2t2ZGZUNm1xZjVNb05sU2pmLzREeHVnbmY4Q0lKdGdBU21ndkhsZjFVQXUy?= =?utf-8?B?YWlwNEEvK2RoY1pWaHlMSzJmVDc3YTlFODFYQzRLQ3hXVkN2UlF1cW9DT3ZT?= =?utf-8?B?cE55b1ZSUGFZQVlNMElnNmV5aGdoYU92Zy9pNlJUcXhLZWNVbkZmb0xxNXNt?= =?utf-8?B?L0Q5NWNUYUY1ejFBT2pXQVZleHFVVXBsS0MvcGlhWkZLVmg0WEYyOGFkSWo1?= =?utf-8?B?cXNrMHo3MHlHUmx6MTN5bm9NM3ZDWWt1VUMrSHpGdkZMeGVvck95N2Z0bFB4?= =?utf-8?B?TXdpdUdNeWgrVElwbzdIZi8rMElwV25CSWlDci9IV21rUEY1amNtVHNGdkFa?= =?utf-8?B?bVlIbFB4aDBGeFl0SjBRNUZWMFFVLy9ObkZXeUFVd0FidGt4Z0R1L0hsU0NR?= =?utf-8?Q?jvTDYPTBxQFsI/cQ8aRlLDG2G32NRJc6zj2rLx3?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1148; 6:XIydW/tqZS0Vt3U34bTZeyx0YDrzzygBoM/1HI38dmgLsjIZDdbOr3U3XPqgeZ8iBZilB3j0qPddyZuixEqYHMa0BaDNsi0w19vFUjkRtO7d1Bby6Degu3H7IN+GsFBGJG5Byir4/sppsHPzqGKhppp4G2NKfbUmkw2A5wnXdj1U+GRjtFuT59ZRLCuoK2gybPVYyreDn2TWx0c0PEh2mfWawro+Rlon3+l9Otd9BBCb/x8F7y5j51shNL2zzw+eEUTPz8ixwXuStcjw8AypdZKleR/c4jUrDfTQ/k0AG/MA7O2zFsfr+h0ln8zZnEwUMiAVk969df7a5egLTN1AGg==; 5:K6GDVRrko8MIXzArjUl6oDkhmiE9CG19KUuFGEFfnRksEAKzkXo3o+pG/ozBrNTUNzowQ1SR6hqqsfXgK3HbBy1QXUbq27NobHYJwhnH+DZ+69dAaBSsRMF97vqOenLvdQYNi7knOJUVTbZzns3+zw==; 24:VOQeWVv3Aua/QCGWHxITUXqkTjEFh24yNaw6t2VHbitkPogZBpB0aB5MCRbNcxupJGmLgyYk1nroB45bnplCPhnRVnf5AaZIebi2MERIJcU=; 7:GxerfpCCnuiLFYAqUzqAmaOTUSKB1fhlzIr4d7WRYCetBQVB7i3UzpuZVG/bMkYEkmiY/UgVfYt7I1cGWRMNYpyVmQ96MkvqX4UQo341endkywB9UfLIs7kOJkn0NBIWMSsMGmPNRkBWLEHH9XV2hBxfvatukTDYAygrUwKoERxNl1MKYTGhC/XynaFZwUz/7z7y6VBNR1Qr2ssMi0NPI9dranLU6ehA8qoY+6JeByA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1148; 20:RjAj5KEqa8Z35emPHa2j0VzM2MaxarMbtdZW/er8iwkQROd7nrAuKmJ2cXEw6G6Ex4r0frh5vqWcWXNu2cLCQ3aHxPk3g+HjgrmNQU50Guw5+pqsx+b4GWzYDRr3MIknWRU2n2QvbhRZ7XTAd0spspOR/qLFog2lRF8clLKbSYRGk5p0hZLdscWJhbDpkCaUZyjdEg8w/urp4q07yMMyVk0UCE08//BuBOQWSo0X/tWSwhnBaOklUQrpwwnp/G4o X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2017 00:03:38.5380 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1148 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add per queue Tx and Rx packet and byte counts. Signed-off-by: Tom Lendacky --- drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 23 ++++++++++++++++------- drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 26 +++++++++++++++++++++++++- drivers/net/ethernet/amd/xgbe/xgbe.h | 5 +++++ 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index 75a479c..a978408 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c @@ -1609,6 +1609,7 @@ static void xgbe_dev_xmit(struct xgbe_channel *channel) struct xgbe_ring_data *rdata; struct xgbe_ring_desc *rdesc; struct xgbe_packet_data *packet = &ring->packet_data; + unsigned int tx_packets, tx_bytes; unsigned int csum, tso, vlan; unsigned int tso_context, vlan_context; unsigned int tx_set_ic; @@ -1618,6 +1619,9 @@ static void xgbe_dev_xmit(struct xgbe_channel *channel) DBGPR("-->xgbe_dev_xmit\n"); + tx_packets = packet->tx_packets; + tx_bytes = packet->tx_bytes; + csum = XGMAC_GET_BITS(packet->attributes, TX_PACKET_ATTRIBUTES, CSUM_ENABLE); tso = XGMAC_GET_BITS(packet->attributes, TX_PACKET_ATTRIBUTES, @@ -1645,13 +1649,12 @@ static void xgbe_dev_xmit(struct xgbe_channel *channel) * - Addition of Tx frame count to the frame count since the * last interrupt was set does not exceed the frame count setting */ - ring->coalesce_count += packet->tx_packets; + ring->coalesce_count += tx_packets; if (!pdata->tx_frames) tx_set_ic = 0; - else if (packet->tx_packets > pdata->tx_frames) + else if (tx_packets > pdata->tx_frames) tx_set_ic = 1; - else if ((ring->coalesce_count % pdata->tx_frames) < - packet->tx_packets) + else if ((ring->coalesce_count % pdata->tx_frames) < tx_packets) tx_set_ic = 1; else tx_set_ic = 0; @@ -1741,7 +1744,7 @@ static void xgbe_dev_xmit(struct xgbe_channel *channel) XGMAC_SET_BITS_LE(rdesc->desc3, TX_NORMAL_DESC3, TCPHDRLEN, packet->tcp_header_len / 4); - pdata->ext_stats.tx_tso_packets += packet->tx_packets; + pdata->ext_stats.tx_tso_packets += tx_packets; } else { /* Enable CRC and Pad Insertion */ XGMAC_SET_BITS_LE(rdesc->desc3, TX_NORMAL_DESC3, CPC, 0); @@ -1789,8 +1792,11 @@ static void xgbe_dev_xmit(struct xgbe_channel *channel) XGMAC_SET_BITS_LE(rdesc->desc2, TX_NORMAL_DESC2, IC, 1); /* Save the Tx info to report back during cleanup */ - rdata->tx.packets = packet->tx_packets; - rdata->tx.bytes = packet->tx_bytes; + rdata->tx.packets = tx_packets; + rdata->tx.bytes = tx_bytes; + + pdata->ext_stats.txq_packets[channel->queue_index] += tx_packets; + pdata->ext_stats.txq_bytes[channel->queue_index] += tx_bytes; /* In case the Tx DMA engine is running, make sure everything * is written to the descriptor(s) before setting the OWN bit @@ -1944,6 +1950,9 @@ static int xgbe_dev_read(struct xgbe_channel *channel) FRAME, 1); } + pdata->ext_stats.rxq_packets[channel->queue_index]++; + pdata->ext_stats.rxq_bytes[channel->queue_index] += rdata->rx.len; + DBGPR("<--xgbe_dev_read: %s - descriptor=%u (cur=%d)\n", channel->name, ring->cur & (ring->rdesc_count - 1), ring->cur); diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c index 67a2e52..f80b186 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c @@ -186,6 +186,7 @@ struct xgbe_stats { static void xgbe_get_strings(struct net_device *netdev, u32 stringset, u8 *data) { + struct xgbe_prv_data *pdata = netdev_priv(netdev); int i; switch (stringset) { @@ -195,6 +196,18 @@ static void xgbe_get_strings(struct net_device *netdev, u32 stringset, u8 *data) ETH_GSTRING_LEN); data += ETH_GSTRING_LEN; } + for (i = 0; i < pdata->tx_ring_count; i++) { + sprintf(data, "txq_%u_packets", i); + data += ETH_GSTRING_LEN; + sprintf(data, "txq_%u_bytes", i); + data += ETH_GSTRING_LEN; + } + for (i = 0; i < pdata->rx_ring_count; i++) { + sprintf(data, "rxq_%u_packets", i); + data += ETH_GSTRING_LEN; + sprintf(data, "rxq_%u_bytes", i); + data += ETH_GSTRING_LEN; + } break; } } @@ -211,15 +224,26 @@ static void xgbe_get_ethtool_stats(struct net_device *netdev, stat = (u8 *)pdata + xgbe_gstring_stats[i].stat_offset; *data++ = *(u64 *)stat; } + for (i = 0; i < pdata->tx_ring_count; i++) { + *data++ = pdata->ext_stats.txq_packets[i]; + *data++ = pdata->ext_stats.txq_bytes[i]; + } + for (i = 0; i < pdata->rx_ring_count; i++) { + *data++ = pdata->ext_stats.rxq_packets[i]; + *data++ = pdata->ext_stats.rxq_bytes[i]; + } } static int xgbe_get_sset_count(struct net_device *netdev, int stringset) { + struct xgbe_prv_data *pdata = netdev_priv(netdev); int ret; switch (stringset) { case ETH_SS_STATS: - ret = XGBE_STATS_COUNT; + ret = XGBE_STATS_COUNT + + (pdata->tx_ring_count * 2) + + (pdata->rx_ring_count * 2); break; default: diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h index c7dd273..929c6b2 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h @@ -668,6 +668,11 @@ struct xgbe_ext_stats { u64 tx_tso_packets; u64 rx_split_header_packets; u64 rx_buffer_unavailable; + + u64 txq_packets[XGBE_MAX_DMA_CHANNELS]; + u64 txq_bytes[XGBE_MAX_DMA_CHANNELS]; + u64 rxq_packets[XGBE_MAX_DMA_CHANNELS]; + u64 rxq_bytes[XGBE_MAX_DMA_CHANNELS]; }; struct xgbe_hw_if {