linux_dsm_epyc7002/drivers/net/ethernet
Jacob Keller 36517fd397 ice: track hardware stat registers past rollover
Currently, ice_stat_update32 and ice_stat_update40 will limit the
value of the software statistic to 32 or 40 bits wide, depending on
which register is being read.

This means that if a driver is running for a long time, the displayed
software register values will roll over to zero at 40 bits or 32 bits.

This occurs because the functions directly assign the difference between
the previous value and current value of the hardware statistic.

Instead, add this value to the current software statistic, and then
update the previous value.

In this way, each time ice_stat_update40 or ice_stat_update32 are
called, they will increment the software tracking value by the
difference of the hardware register from its last read. The software
tracking value will correctly count up until it overflows a u64.

The only requirement is that the ice_stat_update functions be called at
least once each time the hardware register overflows.

While we're fixing ice_stat_update40, modify it to use rd64 instead of
two calls to rd32. Additionally, drop the now unnecessary hireg
function parameter.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-07-31 10:23:04 -07:00
..
3com net: 3com: 3c59x: Use dev_get_drvdata 2019-07-23 13:02:41 -07:00
8390
adaptec
aeroflex Build fixes for skb_frag_size conversion 2019-07-24 11:46:03 -07:00
agere net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
alacritech
allwinner Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
alteon
altera
amazon
amd net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
apm net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
apple
aquantia
arc
atheros net: ag71xx: Slighly simplify code in 'ag71xx_rings_init()' 2019-07-31 08:38:17 -07:00
aurora net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
broadcom net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
brocade net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
calxeda net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
cavium net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
chelsio net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
cirrus
cisco
cortina net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
davicom net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
dec
dlink
emulex net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
ezchip
faraday ftgmac100: Fix build. 2019-07-23 11:45:44 -07:00
freescale net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
fujitsu
google gve: replace kfree with kvfree 2019-07-18 16:31:27 -07:00
hisilicon net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
hp
huawei net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
i825xx
ibm net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
intel ice: track hardware stat registers past rollover 2019-07-31 10:23:04 -07:00
marvell net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
mediatek Build fixes for skb_frag_size conversion 2019-07-24 11:46:03 -07:00
mellanox mlxsw: spectrum_flower: Forbid to offload match on reserved TCP flags bits 2019-07-27 14:32:31 -07:00
micrel
microchip net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
moxa
mscc net: flow_offload: add flow_block structure and use it 2019-07-19 21:27:45 -07:00
myricom myri10ge: remove unneeded variable 2019-07-31 08:44:00 -07:00
natsemi
neterion ethernet: remove redundant memset 2019-07-15 11:06:27 -07:00
netronome nfp: flower: offload MPLS set action 2019-07-23 13:52:51 -07:00
ni net: nixge: Fix misuse of strlcpy 2019-07-07 19:23:05 -07:00
nuvoton net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
nvidia forcedeth: Use dev_get_drvdata where possible 2019-07-24 11:44:46 -07:00
nxp
oki-semi
packetengines
pasemi net: pasemi: fix an use-after-free in pasemi_mac_phy_init() 2019-07-08 16:33:02 -07:00
qlogic qed: reduce maximum stack frame size 2019-07-24 15:46:11 -07:00
qualcomm net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
rdc
realtek r8169: make use of xmit_more 2019-07-29 11:05:12 -07:00
renesas
rocker
samsung
seeq
sfc net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
sgi
silan
sis sis900: add support for ethtool's EEPROM dump 2019-07-26 14:24:48 -07:00
smsc
socionext net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
stmicro net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
sun net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
synopsys net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
tehuti net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
ti net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
toshiba Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
tundra
via
wiznet
xilinx net: axienet: fix a potential double free in axienet_probe() 2019-07-08 16:28:32 -07:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
jme.h
Kconfig gve: Add basic driver framework for Compute Engine Virtual NIC 2019-07-01 19:36:35 -07:00
korina.c
lantiq_etop.c
lantiq_xrx200.c net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
Makefile gve: Add basic driver framework for Compute Engine Virtual NIC 2019-07-01 19:36:35 -07:00
netx-eth.c