Sverd Johnsen <sverd.john...@googlemail.com> : > related: > > https://bugzilla.kernel.org/show_bug.cgi?id=107421
Let's start with yours. > https://bugzilla.kernel.org/show_bug.cgi?id=104351 > > 4.3.0 smp x86_64 > > [ 4.384336] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded > [ 4.384747] r8169 0000:0e:00.0 eth0: RTL8101e at > 0xffffc90000060000, 00:1b:38:b5:9f:d6, XID 94200000 IRQ 29 > [ 13.288711] r8169 0000:0e:00.0 enp14s0: renamed from eth0 > [ 13.317747] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). > [ 28.238567] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). > [ 28.904171] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). > [ 28.923315] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). > [ 29.029901] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). [snip] > [ 36.148587] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). Something enjoys harnessing the tally counters. I don't know why. > [ 46.511024] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). > [ 48.304603] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). > [ 61.528387] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). > [ 76.545869] r8169 0000:0e:00.0 enp14s0: rtl_counters_cond == 1 > (loop: 1000, delay: 10). Looks like stats retrieval every 15s. Is the link up at this point ? Can you temporarily increase the driver verbosity ? It may display some more messages at WARNING level if you enable "hw" context messages through ethtool (see "msglvl" option). Btw the patch below could make a difference. diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index b4f2123..b9817fec 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -2194,8 +2194,12 @@ static int rtl8169_get_sset_count(struct net_device *dev, int sset) DECLARE_RTL_COND(rtl_counters_cond) { void __iomem *ioaddr = tp->mmio_addr; + u32 mask = CounterReset; - return RTL_R32(CounterAddrLow) & (CounterReset | CounterDump); + if (tp->mac_version >= RTL_GIGA_MAC_VER_19) + mask |= CounterDump; + + return RTL_R32(CounterAddrLow) & mask; } static bool rtl8169_do_counters(struct net_device *dev, u32 counter_cmd) -- Ueimor -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html