Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3248314pxv; Sun, 25 Jul 2021 22:31:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxbfNd+Jh6f1wY4Pmh+uzf96ccdluHIycoYU46RyxpqxWLW9H+YZU2Lglk8hatS4/jMtJBX X-Received: by 2002:a92:d6c9:: with SMTP id z9mr11566355ilp.134.1627277489215; Sun, 25 Jul 2021 22:31:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627277489; cv=none; d=google.com; s=arc-20160816; b=0bZF1lmbiyjqdEC/l5PmwFshc0vlJLwp1mXd2PmYj396zcUe/Q0URpyRwGCl18zoJ4 f0ynPTD5Y6kJVPtnAiobiO2lPmo+iWovV2eEN0Cf95D8bPYYEmjCaVwSeQGm2M4ckQB7 c2W+9lLjhYX9/t1coSQ2gvnG0QmoOSUmq2DWt5juhbCXcWk+LrUpZxIaKveL7h3Y4JJl XnnTRUlbcUC1bbcD6Xws0ccV0Ul/vZpQGiK/Esn/5Hh+HanenVzu9BIYv/CS1A9pw9zc QPBOZDTolwzr8FrDlRfrbb91PBv8Iu18NpMnAg0uL3Fxy3cy7S0552alnCMNMV/eqwBq kJMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=exJYd7du+PGHHw+mkZbiwYCJstw++sVoWARZeuq1qmo=; b=vfWYXGdP64ot+PB1JXmn85k0B/RQPD47CrMtluFTczDe2SrUYVLKQkBRkuH6IX+rav v2NFTLs5qp07jN1O3RizcPaLKoMc+qhbYzReZ8YJZia0mkGnavYb6HG/CZ1Wdp0XH2mh wYuX8A0Fojt/FyBovV1V+QAx7lzmFgb9YTyUSPRt9oTbaX/C4fSipXvYkauWI7Mxu1LU D5WOCz6Mcva+dI3J6N9vb8Npa2NP4cpr1HSkG21qWUYoxi/NFDSimXmKnWnQ4/TyIn8T Nsjo4DXU8kjWZ98sbO78InhY7x/ehE/QMynSuiUonBiKO5jYj648DaTRvkOXxwjfOgT8 6x3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@alliedtelesis.co.nz header.s=mail181024 header.b=TxJwODeD; 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=pass (p=NONE sp=NONE dis=NONE) header.from=alliedtelesis.co.nz Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k15si43823409jad.51.2021.07.25.22.31.17; Sun, 25 Jul 2021 22:31:29 -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=pass header.i=@alliedtelesis.co.nz header.s=mail181024 header.b=TxJwODeD; 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=pass (p=NONE sp=NONE dis=NONE) header.from=alliedtelesis.co.nz Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229683AbhGZEuG (ORCPT + 99 others); Mon, 26 Jul 2021 00:50:06 -0400 Received: from gate2.alliedtelesis.co.nz ([202.36.163.20]:59612 "EHLO gate2.alliedtelesis.co.nz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229579AbhGZEuF (ORCPT ); Mon, 26 Jul 2021 00:50:05 -0400 Received: from svr-chch-seg1.atlnz.lc (mmarshal3.atlnz.lc [10.32.18.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by gate2.alliedtelesis.co.nz (Postfix) with ESMTPS id 96DC98365A; Mon, 26 Jul 2021 17:30:32 +1200 (NZST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alliedtelesis.co.nz; s=mail181024; t=1627277432; bh=exJYd7du+PGHHw+mkZbiwYCJstw++sVoWARZeuq1qmo=; h=From:To:Cc:Subject:Date; b=TxJwODeDcSDlstP+t9HgQR8MsR1AF1ybDoL0ed+nlgRPnPp6KRUzJZo2eir7fMM49 6Pea+RHGQYrsERefUJIM0w5E4pZlQkHylop5n6SUJJJw2xm5ugQU2Hi27qB/CI6TYu 6Hpx8E83WImh+hO9dJC7QMxpNJCkGld193a3Q12bosB1YAiFe8WvUREwcm6btRKb/0 U0yL0sZdHzshkgDpgIAQbhyA7d05J1KG1dLssxdV29UirCt4C99dZE+qcNLK+NXLyC m9zoXRCHe36zFt/s40Ea6kncWd0pyDO45jD36G67rxcxPMeE4ZgAmEPoXQFYbEDIb5 jjScBkmOU3/sA== Received: from pat.atlnz.lc (Not Verified[10.32.16.33]) by svr-chch-seg1.atlnz.lc with Trustwave SEG (v8,2,6,11305) id ; Mon, 26 Jul 2021 17:30:32 +1200 Received: from richardl-dl.ws.atlnz.lc (richardl-dl.ws.atlnz.lc [10.33.23.13]) by pat.atlnz.lc (Postfix) with ESMTP id 70CF113EE4B; Mon, 26 Jul 2021 17:30:32 +1200 (NZST) Received: by richardl-dl.ws.atlnz.lc (Postfix, from userid 1481) id 6C1D5320AE4; Mon, 26 Jul 2021 17:30:32 +1200 (NZST) From: Richard Laing To: davem@davemloft.net, netdev@vger.kernel.org Cc: loic.poulain@linaro.org, ryazanov.s.a@gmail.com, linux-kernel@vger.kernel.org, Richard Laing Subject: [PATCH] net: mhi: Improve MBIM packet counting Date: Mon, 26 Jul 2021 17:30:03 +1200 Message-Id: <20210726053003.29857-1-richard.laing@alliedtelesis.co.nz> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SEG-SpamProfiler-Analysis: v=2.3 cv=dvql9Go4 c=1 sm=1 tr=0 a=KLBiSEs5mFS1a/PbTCJxuA==:117 a=e_q4qTt1xDgA:10 a=Qj9HRg2PlNJ9qBswoWQA:9 X-SEG-SpamProfiler-Score: 0 x-atlnz-ls: pat Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Packets are aggregated over the MBIM link and currently the MHI net device will count each aggregated packet rather then the actual packets themselves. If a protocol handler module is specified, use that to count the packets rather than directly in the MHI net device. This is in line with the behaviour of the USB net cdc_mbim driver. Signed-off-by: Richard Laing --- drivers/net/mhi/net.c | 14 +++++++------- drivers/net/mhi/proto_mbim.c | 4 ++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/net/mhi/net.c b/drivers/net/mhi/net.c index a5a2aa19bb91..0cc7dcd0ff96 100644 --- a/drivers/net/mhi/net.c +++ b/drivers/net/mhi/net.c @@ -205,11 +205,6 @@ static void mhi_net_dl_callback(struct mhi_device *m= hi_dev, mhi_netdev->skbagg_head =3D NULL; } =20 - u64_stats_update_begin(&mhi_netdev->stats.rx_syncp); - u64_stats_inc(&mhi_netdev->stats.rx_packets); - u64_stats_add(&mhi_netdev->stats.rx_bytes, skb->len); - u64_stats_update_end(&mhi_netdev->stats.rx_syncp); - switch (skb->data[0] & 0xf0) { case 0x40: skb->protocol =3D htons(ETH_P_IP); @@ -222,10 +217,15 @@ static void mhi_net_dl_callback(struct mhi_device *= mhi_dev, break; } =20 - if (proto && proto->rx) + if (proto && proto->rx) { proto->rx(mhi_netdev, skb); - else + } else { + u64_stats_update_begin(&mhi_netdev->stats.rx_syncp); + u64_stats_inc(&mhi_netdev->stats.rx_packets); + u64_stats_add(&mhi_netdev->stats.rx_bytes, skb->len); + u64_stats_update_end(&mhi_netdev->stats.rx_syncp); netif_rx(skb); + } } =20 /* Refill if RX buffers queue becomes low */ diff --git a/drivers/net/mhi/proto_mbim.c b/drivers/net/mhi/proto_mbim.c index f1cc7f35bb85..761d90b28ee6 100644 --- a/drivers/net/mhi/proto_mbim.c +++ b/drivers/net/mhi/proto_mbim.c @@ -211,6 +211,10 @@ static void mbim_rx(struct mhi_net_dev *mhi_netdev, = struct sk_buff *skb) continue; } =20 + u64_stats_update_begin(&mhi_netdev->stats.rx_syncp); + u64_stats_inc(&mhi_netdev->stats.rx_packets); + u64_stats_add(&mhi_netdev->stats.rx_bytes, skbn->len); + u64_stats_update_end(&mhi_netdev->stats.rx_syncp); netif_rx(skbn); } next_ndp: --=20 2.32.0