From nobody Tue Aug 11 20:50:19 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hKNzw1v5fz6X0MN for ; Tue, 11 Aug 2026 20:50:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKNzv6T3Vz47Pl for ; Tue, 11 Aug 2026 20:50:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786481419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oK2ed+TIxeOxgdg4KZYKCm7pJoZVvh+8m0aI8VJGV3s=; b=x6BTLIX2D+GSwgz9zgFYbrKtbxXzl1vGSOa6pZ7RMYeZ0zhxda+4Khax4wEkkSrCxuuHli uVLJw05U/xbv6YrWTZar5WULPz0dJawzwhMe5dw2P3JpA2D3UcTLx1SR07SYo5lIIfRZ5t rVFwBihgUz94YvHh4eZqgHdcDhYqe/76bfUoWyeRGIHvSDmlBzI31SVxwjN5OVuCCe89T/ VC5/YOTlg+dmmgLplXSlvQVhgiPVrgo+XRXdVGkU2PUv2X+L4Svh91d0dSvSdq2BeJ3vdo 1Wt8yqZYImypVtJvPL2cLqdu3jGJiNXhKfVzw/bvhwnbUSVzdBhOlkMz8k/ObA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786481419; a=rsa-sha256; cv=none; b=Z7HKkAQFs76vNiT4bbBB/1Ig+NexLodQRv7JJbf8Ptfr+ao4lG2l8Z/Eecn/4bilkeRiLw d4br5Fd7F6v821kQLs6NFoQ1/tbzemQVZQZGQN80MZ+jrVHEDO1KpWFwnnFIc71sJlT06w l7UlXkle09njsifNnB+8kb02mgTeaaOpoFS91PoaC/LZOeTMuuJIK/bt1AshKEuCoqiXcx y+p+fxjDwS2ewdKeOhaZ5QlxuQ4Y9r2hbPAOWxCOqauS128ai1hZWM98xjH5SVO1oIyfVU Pvs3GoY3FZss4sXvxVYqiXX0UHabdI7UOeO5vzBOOUmVkW2TScW2JX986tInIQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786481419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oK2ed+TIxeOxgdg4KZYKCm7pJoZVvh+8m0aI8VJGV3s=; b=ddB9hadRcNSNkUVAE23tB3e/YfSZfXgsKEwyY89vbYdZFMzh6De40fcIOg9RaJgRH6IrMB 9nL+i4LS0dx6GxxdV2+rVv7ZQkrosFX5VBjvXwv0I3z8HoAkft6TES0+g7acfuHYTY+mQh h4Ey04I06hn1c/eF81SVWy6B6jHy6ST5oHIGtKXQnIO8QmpvLySvBtQqtwVt8rB9rNOn0w Fk9txUXIxyVP+qjjcu2kqWPZKn0ivqAjke9gFP4760Tv8x1HimieYqmAjguzQVaRSYw8YY BYS40HESiOS2vMUnzC7jQbRJJCz0J989rHf4NnhkjaQ/EhV9RLG6s6uvhFSIDg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKNzv5Hg0z19Y5 for ; Tue, 11 Aug 2026 20:50:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37044 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 20:50:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: eff55e5e098b - main - e1000: Export EEE Low Power Idle counters List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eff55e5e098b85855335d8df151787b6b034973f Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 20:50:19 +0000 Message-Id: <6a7b8b0b.37044.48dab49c@gitrepo.freebsd.org> The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=eff55e5e098b85855335d8df151787b6b034973f commit eff55e5e098b85855335d8df151787b6b034973f Author: Kevin Bowling AuthorDate: 2026-08-11 18:59:19 +0000 Commit: Kevin Bowling CommitDate: 2026-08-11 20:49:56 +0000 e1000: Export EEE Low Power Idle counters Accumulate the clear-on-read transmit and receive LPI event counters on EEE capable PCH and I350 family devices. Expose the 64-bit totals under the per-device eee sysctl node. MFC after: 2 weeks --- sys/dev/e1000/if_em.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 2a7b3f4e3bfb..5a02514a89e3 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -462,6 +462,7 @@ static void em_initialize_vf_stats(struct e1000_softc *); static void em_rebase_vf_stats(struct e1000_softc *); static void em_update_vf_stats_counters(struct e1000_softc *); static void em_add_hw_stats(struct e1000_softc *); +static bool em_mac_has_eee(enum e1000_mac_type); static int em_if_set_promisc(if_ctx_t, int); static bool em_if_defer_promisc(struct e1000_softc *); static bool em_if_vlan_filter_capable(if_ctx_t); @@ -5642,6 +5643,12 @@ em_update_stats_counters(struct e1000_softc *sc) stats->mptc += E1000_READ_REG(&sc->hw, E1000_MPTC); stats->bptc += E1000_READ_REG(&sc->hw, E1000_BPTC); + /* TLPIC and RLPIC are clear-on-read. */ + if (em_mac_has_eee(sc->hw.mac.type)) { + stats->tlpic += E1000_READ_REG(&sc->hw, E1000_TLPIC); + stats->rlpic += E1000_READ_REG(&sc->hw, E1000_RLPIC); + } + /* Interrupt Counts */ stats->iac += E1000_READ_REG(&sc->hw, E1000_IAC); @@ -5670,6 +5677,14 @@ em_update_stats_counters(struct e1000_softc *sc) } } +static bool +em_mac_has_eee(enum e1000_mac_type type) +{ + + return ((type >= e1000_pch2lan && type < e1000_82575) || + (type >= e1000_i350 && type <= e1000_i211)); +} + static void em_initialize_vf_stats(struct e1000_softc *sc) { @@ -6059,6 +6074,19 @@ em_add_hw_stats(struct e1000_softc *sc) } stats = &sc->ustats.stats; + if (em_mac_has_eee(sc->hw.mac.type)) { + struct sysctl_oid *eee_node; + struct sysctl_oid_list *eee_list; + + eee_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "eee", + CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, + "Energy Efficient Ethernet statistics"); + eee_list = SYSCTL_CHILDREN(eee_node); + SYSCTL_ADD_UQUAD(ctx, eee_list, OID_AUTO, "tx_lpi_count", + CTLFLAG_RD, &stats->tlpic, "TX LPI event count"); + SYSCTL_ADD_UQUAD(ctx, eee_list, OID_AUTO, "rx_lpi_count", + CTLFLAG_RD, &stats->rlpic, "RX LPI event count"); + } SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "excess_coll", CTLFLAG_RD, &stats->ecol,