Comment # 6
on bug 1067
from Nathan Scott
(In reply to comment #5)
> One fairly non intrusive and quick ameliorating change (it's not a full fix
> obviously) would be to always fetch most/all the interface attributes via
> sysfs via the SIOCETHTOOL/SIOC* calls.
>
> At least in Carlos' strace it took one whole second:
> 23:06:19.435643 ioctl(8, SIOCETHTOOL, 0x7fff7d76d0e0) = 0 <1.038297>
>
> Since SIOCETHTOOL does poke the driver itself, whereas the sysfs attributes
> won't, it seems this could be a fairly quick win (at least RHEL 5 has those
> files for most interfaces) and should an older kernel not have them
> we can always fall back to SIOCETHTOOL.
+1 ... this should be a fairly simple, low-risk change.
> We could then discuss separately how the linux pmda is fetching too much
> data when poked for a few metrics and maybe tackle that in a more intrusive/
> architectural way (I have a hunch that network.interface.* is not the only
> one). This is likely to at least improve Carlos' situation where a driver
> might
> decide to take a long time to reply to an ethtool poking.
There's an existing Linux PMDA model to handle this in linux_refresh(), problem
is its designed around each cluster having a single sampling mechanism and in
this case that's not what happens. So, yes, need to rethink that, but that's a
fair bit more invasive.