From nobody Sat Oct 11 04:18:10 2025 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 396301AAA2C; Wed, 11 Jun 2025 15:11:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749654679; cv=none; b=rnouNpckt4AGQhdkYGYHhDUH6s4qbv3b3VpUhlMHf60C2YIu0XznSCFh0M/Wj+Ot0XiD59txEN0UFlVZggWtMwd5roe0D1t1okAyPy9fjo+Z4AsCDZnykPFFWlcWZys3jVhkbBLOqAtmbNxqOuyLct4WjCq4E6yE2Jq0pFStgMs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749654679; c=relaxed/simple; bh=A1mou4igJDVMm9MXXhq0ZMdUzTHaV7ugbO9k+ECUps0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jbU4IYBxNdt+9yUBEUroTKEVgje7VhK1AXkf/6/QTtHGx980u1/hzC0422H9IjMVZdlsISsPTI3jEgHdfolZ+8vhTWSzots+B6iCEI/+Xv7L9xOjDS8pOP3/UyTIIzfBpigGEQ6OtDcJw+ENTvljVytnSGKU2Ph6r05pLdKA3g4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-addda47ebeaso1300815566b.1; Wed, 11 Jun 2025 08:11:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749654675; x=1750259475; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=atauMOX5FmrHP4FkHe4H+8rhDdCOC1ogq5Y36BfGZ5c=; b=ebrYq6ClbXQ+HuUAhIJ/qAJbjH9frCWz+KdpPVLpwbXgzU3/RS7yYyo2HQMZGkro1C Dl+ffIbH+3oDuZNN3JGzQU+52W9LXdDA2s1rv4yZwQ8kLtVyyZiaFFZHH1fGzZFnrYZh 7QQZ0xjXd4M6IrcajsEUkE+NXTEnIZMzvLXnkUBcaulfaBnfO95gXAXPL73OoVyjMAfF B4zyERLigI4fEtACEm2kOPQy8Hc4ZHzgprywAMgILsJ8psHM6K4SAoQhrVwoCxI/jfVe BBVkoqFLEvYdOqa4ZJqIgosus3UnbPVUwVAgqkUmd0CFhHAyhOuaKawbKb2QWtlQOFof WfLA== X-Forwarded-Encrypted: i=1; AJvYcCU9VNxiY8uABnOw3IBn5IOxnWLdx24JxB36O8Vh3KRzS/YtSa3cNs+h7HMrAFe32CalX8Xz7j9IQ3zhjkA=@vger.kernel.org X-Gm-Message-State: AOJu0YyGi6kd2l43OA9fZl5lAPFZRuppwuw+SOy1I4cAkV1Z2axzofI8 8sN3/FpQ3FNM2zUJTcN2xyNcBxTSNSJFUWlgsNFx42IaavN6u52trSwP X-Gm-Gg: ASbGncs36HUt8iddpgVcG8Id4h4JbtaY9OPsO5IIhKlm7dM1eOjZkRFFwTpfhfdfezj yAwSkFaPR8xZ+Vq526v/VpSfI9qgRg3UItU0sG8pMqagBCJXUr+B76Y5Nh/OUvP9HDAAmjBeXDh l1eTXZtrB+WYln/p2AbUvMeu0MbIS0LL54TWnx5DTfU0Lodh4CIK4eV071TUm+NkqzwOVyO6Sqx d7dP4uYu2WS4RidlJklqn+dNSYWjwxKqtke5EvKNshYQhPKZ52Ud1/mghVfPcvaRsJIGRMc8D42 /b3iNU0Ms+QifuGoCbWjbg0uXqBeCbJm/Qj5q+UbWZ/hhcI6BA5w8A== X-Google-Smtp-Source: AGHT+IHXH8owQy/RTUY4vtforzGTOIV0lRuxwMta7I/O/gDkxIdxrI6Vl5a8pzLMVyIXD+BBTWE+Wg== X-Received: by 2002:a17:907:986:b0:ad8:9e80:6ba3 with SMTP id a640c23a62f3a-adea2e355damr2289466b.7.1749654675109; Wed, 11 Jun 2025 08:11:15 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:71::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ade1dc7c770sm893115466b.167.2025.06.11.08.11.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jun 2025 08:11:14 -0700 (PDT) From: Breno Leitao Date: Wed, 11 Jun 2025 08:06:19 -0700 Subject: [PATCH net-next 1/2] netdevsim: migrate to dstats stats collection Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250611-netdevsim_stat-v1-1-c11b657d96bf@debian.org> References: <20250611-netdevsim_stat-v1-0-c11b657d96bf@debian.org> In-Reply-To: <20250611-netdevsim_stat-v1-0-c11b657d96bf@debian.org> To: Jakub Kicinski , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Breno Leitao , kernel-team@meta.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=4918; i=leitao@debian.org; h=from:subject:message-id; bh=A1mou4igJDVMm9MXXhq0ZMdUzTHaV7ugbO9k+ECUps0=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoSZyQsbGm5/ezwpfDMad4CIakxocWjaeuMJgxs y+Sk4Yals6JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEmckAAKCRA1o5Of/Hh3 bdigD/9DuXb4Tu1dcQZL452NPLc3xQP1pJ6ALcQmRnnam+1AIk5AEW0Tn5rikdiH5SO5ZbfC4FU /FjUgwcNGSW9UXVC/r+ni9hSJztGteDrKeGV40k7BX54Bjg1w+Grq4818cadjoxIM/q4F+7KKpY P+NoQL4JzNKjWgIylo43uMYsaBdLM/XboMk6exXNzfbJlpl5nDm/Lolfc0UnXVMMyshOuL1rF/a eImKjJwpoZ0rGDReAjtLWFhN7iAle0I9j+M0vW2PpjTB8TQYMrxcRrkrwYSMJi5jbztYCiyKq96 /tDtTEbz0xLDJ5DC09FB0pvkLyvS6UxEV7bW0hSgkmdDHQ7Jn5N5ZsRVAo0traaxEeIulRN3KaS Gvfl4CndkBvtzc0jDwPS6OP/I0YWpXzIy/tCcey0LiAVcM2xQTdz01OqxkJj/d4jo1H/VLn3qT+ M7+YAdwJ1AqUhw8J57zBMyYAkVYw9m4yfAYKc79fncHqrLY2rDQvEfMXPXTMzbKSkZd6IHjxVx7 pIpzhobI10+JeqPJYuqblrPwdXcp3rNozwb6jUDZQVGrf3YkdHNKJXB0A/IpQfxF2r8axJb1T/n sqRjpR1C5OOwMA1VqtkzMEqKA6WjklFBsy+OrjA65VMLNH77HwKvb1kAOQr4Dzr4JBatOYhU6gp 6AvO2VYzyt0Z5yA== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Replace custom statistics tracking with the kernel's dstats infrastructure to simplify code and improve consistency with other network drivers. This change: - Sets dev->pcpu_stat_type =3D NETDEV_PCPU_STAT_DSTATS for automatic automatic allocation and deallocation. - Removes manual stats fields and their update - Replaces custom nsim_get_stats64() with dev_get_stats() - Uses dev_dstats_tx_add() and dev_dstats_tx_dropped() helpers - Eliminates the need for manual synchronization primitives The dstats framework provides the same functionality with less code. Suggested-by: Jakub Kicinski Signed-off-by: Breno Leitao Reviewed-by: Joe Damato --- drivers/net/netdevsim/netdev.c | 33 ++++++--------------------------- drivers/net/netdevsim/netdevsim.h | 5 ----- 2 files changed, 6 insertions(+), 32 deletions(-) diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index af545d42961c3..67871d31252fe 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -93,19 +93,14 @@ static netdev_tx_t nsim_start_xmit(struct sk_buff *skb,= struct net_device *dev) hrtimer_start(&rq->napi_timer, us_to_ktime(5), HRTIMER_MODE_REL); =20 rcu_read_unlock(); - u64_stats_update_begin(&ns->syncp); - ns->tx_packets++; - ns->tx_bytes +=3D len; - u64_stats_update_end(&ns->syncp); + dev_dstats_tx_add(dev, skb->len); return NETDEV_TX_OK; =20 out_drop_free: dev_kfree_skb(skb); out_drop_cnt: rcu_read_unlock(); - u64_stats_update_begin(&ns->syncp); - ns->tx_dropped++; - u64_stats_update_end(&ns->syncp); + dev_dstats_tx_dropped(dev); return NETDEV_TX_OK; } =20 @@ -126,20 +121,6 @@ static int nsim_change_mtu(struct net_device *dev, int= new_mtu) return 0; } =20 -static void -nsim_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) -{ - struct netdevsim *ns =3D netdev_priv(dev); - unsigned int start; - - do { - start =3D u64_stats_fetch_begin(&ns->syncp); - stats->tx_bytes =3D ns->tx_bytes; - stats->tx_packets =3D ns->tx_packets; - stats->tx_dropped =3D ns->tx_dropped; - } while (u64_stats_fetch_retry(&ns->syncp, start)); -} - static int nsim_setup_tc_block_cb(enum tc_setup_type type, void *type_data, void *cb_= priv) { @@ -555,7 +536,6 @@ static const struct net_device_ops nsim_netdev_ops =3D { .ndo_set_mac_address =3D eth_mac_addr, .ndo_validate_addr =3D eth_validate_addr, .ndo_change_mtu =3D nsim_change_mtu, - .ndo_get_stats64 =3D nsim_get_stats64, .ndo_set_vf_mac =3D nsim_set_vf_mac, .ndo_set_vf_vlan =3D nsim_set_vf_vlan, .ndo_set_vf_rate =3D nsim_set_vf_rate, @@ -579,7 +559,6 @@ static const struct net_device_ops nsim_vf_netdev_ops = =3D { .ndo_set_mac_address =3D eth_mac_addr, .ndo_validate_addr =3D eth_validate_addr, .ndo_change_mtu =3D nsim_change_mtu, - .ndo_get_stats64 =3D nsim_get_stats64, .ndo_setup_tc =3D nsim_setup_tc, .ndo_set_features =3D nsim_set_features, }; @@ -593,7 +572,7 @@ static void nsim_get_queue_stats_rx(struct net_device *= dev, int idx, struct rtnl_link_stats64 rtstats =3D {}; =20 if (!idx) - nsim_get_stats64(dev, &rtstats); + dev_get_stats(dev, &rtstats); =20 stats->packets =3D rtstats.rx_packets - !!rtstats.rx_packets; stats->bytes =3D rtstats.rx_bytes; @@ -605,7 +584,7 @@ static void nsim_get_queue_stats_tx(struct net_device *= dev, int idx, struct rtnl_link_stats64 rtstats =3D {}; =20 if (!idx) - nsim_get_stats64(dev, &rtstats); + dev_get_stats(dev, &rtstats); =20 stats->packets =3D rtstats.tx_packets - !!rtstats.tx_packets; stats->bytes =3D rtstats.tx_bytes; @@ -617,7 +596,7 @@ static void nsim_get_base_stats(struct net_device *dev, { struct rtnl_link_stats64 rtstats =3D {}; =20 - nsim_get_stats64(dev, &rtstats); + dev_get_stats(dev, &rtstats); =20 rx->packets =3D !!rtstats.rx_packets; rx->bytes =3D 0; @@ -889,6 +868,7 @@ static void nsim_setup(struct net_device *dev) NETIF_F_HW_CSUM | NETIF_F_LRO | NETIF_F_TSO; + dev->pcpu_stat_type =3D NETDEV_PCPU_STAT_DSTATS; dev->max_mtu =3D ETH_MAX_MTU; dev->xdp_features =3D NETDEV_XDP_ACT_HW_OFFLOAD; } @@ -1021,7 +1001,6 @@ nsim_create(struct nsim_dev *nsim_dev, struct nsim_de= v_port *nsim_dev_port) dev_net_set(dev, nsim_dev_net(nsim_dev)); ns =3D netdev_priv(dev); ns->netdev =3D dev; - u64_stats_init(&ns->syncp); ns->nsim_dev =3D nsim_dev; ns->nsim_dev_port =3D nsim_dev_port; ns->nsim_bus_dev =3D nsim_dev->nsim_bus_dev; diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netd= evsim.h index d04401f0bdf79..343b8f19dbed6 100644 --- a/drivers/net/netdevsim/netdevsim.h +++ b/drivers/net/netdevsim/netdevsim.h @@ -108,11 +108,6 @@ struct netdevsim { =20 int rq_reset_mode; =20 - u64 tx_packets; - u64 tx_bytes; - u64 tx_dropped; - struct u64_stats_sync syncp; - struct nsim_bus_dev *nsim_bus_dev; =20 struct bpf_prog *bpf_offloaded; --=20 2.47.1 From nobody Sat Oct 11 04:18:10 2025 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A92CF1DE4C5; Wed, 11 Jun 2025 15:11:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749654680; cv=none; b=ugxwzG/KnspItLRKZ15WUrLQhfcnegSwb0Bwor+WcTZjA2jGQxdxBZuoWe/kFc/CMkoteBkXQWcPhHpwjyWPh+R/W7YRX6aT+z3yAz34jBoMaOUfSYjWDeKLtoP7KkYxEUl/CBX151InjTi9usXCPmM+WLYfbJGr2BrY45RZR00= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749654680; c=relaxed/simple; bh=iXwuaJziruMBD8hH71+MxDpo/qpQid2pIXQ49Opdlbw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SANbdOSw5QOpqnF277CIC4lwHCmSCjqwPmx40wdfP3LiUZbx5eNFh+M3iX8j1IDHQNpj5MuNnymT/vbG4lAuImTGBk9S/nYGICRdKYA9f59PFVbToTSlyLilyfFDAO4ya7fe55qsIyQq8WmyraWy/aHb6vKMwegdCJ/wsSxI8KM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.208.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5efe8d9ebdfso11944692a12.3; Wed, 11 Jun 2025 08:11:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749654677; x=1750259477; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cK7i3MrkzXyfeq++IoaxWfQU0vjfU+V91LzS9evvOHI=; b=S6fOx6IVqI1xiUj/+r6PGPGcB6Vd19oY/GNJ+GdEsQUDq0PIkB+sIezMeqHRBlyb+p QzM3qBkRebvGDwRqG0jSr7mRXU5ADpOurJ0IlK4SwRqs4IbfUqGr37RBJ8dtv/4VTumu tU31aHV3QYDK9vwdTSbSSBOwuZMPRiI9XjIk+MfJ8EAqfzk4R2KwWpiluGxRXQBNPMQ+ 4sRsjDysAd2pjNE9zF4DRnHjGIlch7zo+VkNQsV2Sh+nIPq01zfVW98JrGAgNbbvkuNQ 9VQXCRsUTsB7b5wrSVr7q+M95k4TlqCX4RZlqXrELKGoSi+uzvXtzt45YJlUrqS68F6I B49g== X-Forwarded-Encrypted: i=1; AJvYcCWSMzMv4Q9k6YHE3w8NJ+SIur5UXHeXZ9UX8hGJJEjTKx5F71AYHP+GYB8wJWC9HMfqTocqsVQLhVBEonA=@vger.kernel.org X-Gm-Message-State: AOJu0YwPMPQuTj73ObwkuhstEvjqP+bvODtEbn+qICihjVCWsx0QTUWE N5GuE7Dl44H+IKjccjMcn2Ysdj97fuspr+Uvrs5XOrUgtGNjN7hv7naQ X-Gm-Gg: ASbGncssu5y1+Kr+7aGRrJga0URcaMrGQvXQa4LUObVTPlld/6KzJ7MLkddr+GgFHYs ZoUUiRX59s9XYnjNweBD2Hf5xaOT3qBdC/ExBmN9QIzzPeaS4u+DyKTwVfXe+g0S4COEiuvZoO1 gTIUOeoL3qd2H1yCxgDI+qWzQ94WwAkG4WO5fQhJJETsCrQrIDxJ4NgF49eyENHiMigwAF4HrP4 SJQE1FhQMZSj3B4wtmCKMGCw4ZDNKbWEGvA3l1r/lsPOMRhKvii2t3+FrE4kGMt+QLmcrpWt5eR ebiINNAB7EdHIsFM25JlrXk/dzcQEnPTFC5vlCo2xczm00Gvt7iM X-Google-Smtp-Source: AGHT+IE8tCK4+befdr8xutY92sqMP6GffHLBtnlsqMWXRmN5HhDYZ7Th/K7ZTKqzWKNI3TOLwoJPFw== X-Received: by 2002:a05:6402:42d6:b0:608:3b9d:a1b with SMTP id 4fb4d7f45d1cf-60863ae566emr196180a12.19.1749654676627; Wed, 11 Jun 2025 08:11:16 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:2::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-607783dcd63sm7535362a12.53.2025.06.11.08.11.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jun 2025 08:11:16 -0700 (PDT) From: Breno Leitao Date: Wed, 11 Jun 2025 08:06:20 -0700 Subject: [PATCH net-next 2/2] netdevsim: collect statistics at RX side Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250611-netdevsim_stat-v1-2-c11b657d96bf@debian.org> References: <20250611-netdevsim_stat-v1-0-c11b657d96bf@debian.org> In-Reply-To: <20250611-netdevsim_stat-v1-0-c11b657d96bf@debian.org> To: Jakub Kicinski , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Breno Leitao , kernel-team@meta.com, Breno Leitao X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=1008; i=leitao@debian.org; h=from:subject:message-id; bh=iXwuaJziruMBD8hH71+MxDpo/qpQid2pIXQ49Opdlbw=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoSZyQiku65t6XjbatcRMxz6b9rKZYEo6yj3YuH Rp/QTqPhouJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEmckAAKCRA1o5Of/Hh3 baa4D/0ZdKbnJeXTIe8gzkIjRifIuiPoxNs0ASOKfwoTLCP4DWLYzllSt96IYlCCZgRIkg83YJe nmWEsYfIaLAxxwRBkMXNI68iEi2X0OFOBHJF8BuN+7MB+4vvpBFUYG2vdqxJgdkU5viT/MC0n26 j/Xi0cR3lQ0slN9CYY9yid9Z9Btx9RSjyefZwqy3crppqseTUFn9Pm44zd43CRb4uTWYLTEPm22 0wDrngNB+iDstIcqyYOvrHb7Z0tRzBKELtm5TpGYovvz6tWvt//5P8TD7GTzGU8kmajsJ8LjA// AzMWpVMRXutzL4T/4fxy19ee8Z2La4sMkHzmkXs/IbSdBGrGagM+5qBRfDSQwwlsFkxQnu/UvXv 4pSyj9SHALf+NfX8YbnqyoCL7lzjvByhTiYqT8DPPqevW2OZahMWDRdD3EG4O5rKESj1PFhcP95 r9xD9wJHaaqtG2MYm1yWwjexUED012GGtlnn8wCsXSyYyr4ZhwWLn6SlUPG5aSLDlw25jVDaqcg Slarmwzqf7TSLR+mPGCIroIhuONfs78AsTUCt/WSt0LgpkuPaE62hB84jVxnEt8RMqLBHUdN79o pJZRPhZ0mcRtYhZk/KmVWD9oqfDz8ews30r35IO+h7FdpStTzIKQuUQhRfgI7aB4lNuxsV7ZWuY aVP0QBNIddnCBhw== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D When the RX side of netdevsim was added, the RX statistics were missing, making the driver unusable for GenerateTraffic() test framework. This patch adds proper statistics tracking on RX side, complementing the TX path. Signed-off-by: Breno Leitao --- drivers/net/netdevsim/netdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c index 67871d31252fe..590cb5bb0d20b 100644 --- a/drivers/net/netdevsim/netdev.c +++ b/drivers/net/netdevsim/netdev.c @@ -39,12 +39,16 @@ MODULE_IMPORT_NS("NETDEV_INTERNAL"); =20 static int nsim_napi_rx(struct nsim_rq *rq, struct sk_buff *skb) { + struct net_device *dev =3D rq->napi.dev; + if (skb_queue_len(&rq->skb_queue) > NSIM_RING_SIZE) { dev_kfree_skb_any(skb); + dev_dstats_rx_dropped(dev); return NET_RX_DROP; } =20 skb_queue_tail(&rq->skb_queue, skb); + dev_dstats_rx_add(dev, skb->len); return NET_RX_SUCCESS; } =20 --=20 2.47.1