On Tue, Apr 5, 2016 at 5:20 AM, Brenden Blanco <bbla...@plumgrid.com> wrote: > On Sat, Apr 02, 2016 at 11:15:38PM -0700, Brenden Blanco wrote: >> On Fri, Apr 01, 2016 at 07:08:31PM -0700, Eric Dumazet wrote: > [...] >> > 2) priv->stats.rx_dropped is shared by all the RX queues -> false >> > sharing. >> > >> > This is probably the right time to add a rx_dropped field in struct >> > mlx4_en_rx_ring since you guys want to drop 14 Mpps, and 50 Mpps on >> > higher speed links. >> > >> This sounds reasonable! Will look into it for the next spin. > I looked into this, and it seems to me that both the rx and tx dropped > stats are buggy. With commit a3333b35da1634f49aca541f2574a084221e2616, > specifically with the line > stats->rx_dropped = be32_to_cpu(mlx4_en_stats->RDROP); > that occurs during the periodic ethtool task, whatever ++ was happening > in the rx/tx code is overwritten with the HW value. Since the SW stats > are incremented mostly in edge (oom) cases, nobody probably noticed. To > me it doesn't seem right to mix hard and soft counters, especially at > the risk of making a bad situation worse, so I'm planning to omit the > new bpf dropped++ stat and we can discuss ways to fix this other bug > separately.
Thanks Eric and Brenden, I will make a patch for mlx4_en RX dropped counters to fix the issues you raised here.