Module Name: src Committed By: msaitoh Date: Thu May 11 06:54:23 UTC 2023
Modified Files: src/sys/dev/pci: if_wm.c Log Message: Count some 64bit counters correctly. - Fix calculation of GORC, GOTC, TOR and TOT counters correctly. - Found by knakahara. To generate a diff of this commit: cvs rdiff -u -r1.767 -r1.768 src/sys/dev/pci/if_wm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_wm.c diff -u src/sys/dev/pci/if_wm.c:1.767 src/sys/dev/pci/if_wm.c:1.768 --- src/sys/dev/pci/if_wm.c:1.767 Thu Dec 8 08:14:28 2022 +++ src/sys/dev/pci/if_wm.c Thu May 11 06:54:23 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wm.c,v 1.767 2022/12/08 08:14:28 knakahara Exp $ */ +/* $NetBSD: if_wm.c,v 1.768 2023/05/11 06:54:23 msaitoh Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc. @@ -82,7 +82,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.767 2022/12/08 08:14:28 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.768 2023/05/11 06:54:23 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_if_wm.h" @@ -3786,9 +3786,11 @@ wm_tick(void *arg) WM_EVCNT_ADD(&sc->sc_ev_gptc, CSR_READ(sc, WMREG_GPTC)); WM_EVCNT_ADD(&sc->sc_ev_gorc, - CSR_READ(sc, WMREG_GORCL) + CSR_READ(sc, WMREG_GORCH)); + CSR_READ(sc, WMREG_GORCL) + + ((uint64_t)CSR_READ(sc, WMREG_GORCH) << 32)); WM_EVCNT_ADD(&sc->sc_ev_gotc, - CSR_READ(sc, WMREG_GOTCL) + CSR_READ(sc, WMREG_GOTCH)); + CSR_READ(sc, WMREG_GOTCL) + + ((uint64_t)CSR_READ(sc, WMREG_GOTCH) << 32)); WM_EVCNT_ADD(&sc->sc_ev_rnbc, CSR_READ(sc, WMREG_RNBC)); WM_EVCNT_ADD(&sc->sc_ev_ruc, CSR_READ(sc, WMREG_RUC)); @@ -3797,9 +3799,11 @@ wm_tick(void *arg) WM_EVCNT_ADD(&sc->sc_ev_rjc, CSR_READ(sc, WMREG_RJC)); WM_EVCNT_ADD(&sc->sc_ev_tor, - CSR_READ(sc, WMREG_TORL) + CSR_READ(sc, WMREG_TORH)); + CSR_READ(sc, WMREG_TORL) + + ((uint64_t)CSR_READ(sc, WMREG_TORH) << 32)); WM_EVCNT_ADD(&sc->sc_ev_tot, - CSR_READ(sc, WMREG_TOTL) + CSR_READ(sc, WMREG_TOTH)); + CSR_READ(sc, WMREG_TOTL) + + ((uint64_t)CSR_READ(sc, WMREG_TOTH) << 32)); WM_EVCNT_ADD(&sc->sc_ev_tpr, CSR_READ(sc, WMREG_TPR)); WM_EVCNT_ADD(&sc->sc_ev_tpt, CSR_READ(sc, WMREG_TPT));