Re: [PATCH] net: add ability to clear stats via ethtool - e1000/pcnet32
From: Ben Hutchings <hidden>
Date: 2008-06-01 22:29:47
Also in:
lkml
Bill Fink wrote:
On Sun, 1 Jun 2008, Ben Hutchings wrote:quoted
Bill Fink wrote: <snip>quoted
Yes, every individual Linux network administrator can re-create the wheel by devising their own scripts, but it makes much more sense to me to implement a simple general kernel mechanism once that could be used generically, than to have hundreds (or thousands) of Linux network administrators each having to do it themselves (perhaps multiple times if they have a variety of types of systems and types of NICs).The ethtool interface is pretty generic, even if the names aren't. Here's some Python code I just knocked up which demonstrates how to get a set of named stats. It shouldn't be terribly hard to extend this to saving and subtracting stat sets.I'm not sure what that proves. Your python code just basically gives the same info as running the "ethtool -S" command.
Yes, but in a form you can more easily manipulate.
But the question is how does one devise a generic script or tool that doesn't require any special knowledge of the specific NIC being used. For example, here's the "ethtool -S" info for my myri10ge NIC: [root@chance8 ~]# ethtool -S eth2 NIC statistics:
[...]
WC: 1
irq: 8413
MSI: 1
read_dma_bw_MBs: 1398
write_dma_bw_MBs: 1613
read_write_dma_bw_MBs: 2711
serial_number: 287046[...]
tx_linearized: 0
link_changes: 8
link_up: 1[...]
How does one know which of these reported values are counter stats that one wishes to zero/snapshot, and which are not?
Ah, I see, I didn't realise some drivers were abusing ethtool stats in this way. But for the most part the differences will show up as zeroes. If there's really a need for ethtool stats that aren't counters, maybe the ethtool API should include flags to indicate which they are.
Another issue that occurred to me is if multiple people are working
on troubleshooting a network problem, how do we insure that they all
get a consistent view of the stats? If this is done via a kernel
mechanism then there isn't an issue. But if it's done via user space,
then you have to make sure that everyone zeros/snapshots the stats
at the same time.
Ideally, one should be able to do something like "ethtool -z ethX"
to zero/snapshot the driver stats, and then "ethtool -S ethX" to get
the stats since the last snapshot. You should be able to use the
same tool ("ethtool") to do all of this, and not some other special
tool or specially devised homegrown script. Why make users lives
any more difficult than need be?No-one's stopping you from adding these options to ethtool. You could have it save statistic sets in, say, /var/run/ethtool. Ben. -- Ben Hutchings, Senior Software Engineer, Solarflare Communications Not speaking for my employer; that's the marketing department's job.