On Thu, Jun 16, 2016 at 07:06:52PM +0100, Ben Hutchings wrote: > On Thu, 2016-06-16 at 10:55 -0700, Benjamin Poirier wrote: > > On 2016/06/13 11:46, Netanel Belgazal wrote: > [...] > > > +static ssize_t ena_show_small_copy_len(struct device *dev, > > > + struct device_attribute *attr, char *buf) > > > +{ > > > + struct ena_adapter *adapter = dev_get_drvdata(dev); > > > + > > > + return sprintf(buf, "%d\n", adapter->small_copy_len); > > > +} > > > + > > > +static DEVICE_ATTR(small_copy_len, S_IRUGO | S_IWUSR, > > > ena_show_small_copy_len, > > > + ena_store_small_copy_len); > > > > This is what many other drivers call (rx_)copybreak. Perhaps it's time > > to add it to ethtool as well? > [...] > > There is the 'tunable' ethtool API for random parameters like > rx_copybreak. The ethtool utility doesn't support it yet, though.
So I started implementing proper support for this in ethtool in a generic way (retrieving the string set, parsing generically, etc), but it seems that the implementation isn't quite as complete as one would like. You said [1] that the kernel returns the type of each tunable, but I don't see this implemented anywhere. The string set also includes "Unspec", which is of dubious value. I think that something tunable specific is going to need to be added apart from ETHTOOL_GSTRINGS to provide ethtool the needed type information. --msw [1] http://thread.gmane.org/gmane.linux.network/367058/focus=376701