Message ID | 1393464911-21593-3-git-send-email-f.fainelli@gmail.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
From: Florian Fainelli > Introduce a new configure script option: --enable-small which will > disable building the driver specific register dump objects, the savings > are: ... > +if !SMALL > +ethtool_SOURCES += \ > amd8111e.c de2104x.c e100.c e1000.c et131x.c igb.c \ > fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ > pcnet32.c realtek.c tg3.c marvell.c vioc.c \ > smsc911x.c at76c50x-usb.c sfc.c stmmac.c \ > - rxclass.c sfpid.c sfpdiag.c ixgbevf.c > + sfpid.c sfpdiag.c ixgbevf.c > +endif What about allowing a subset of the register dumps be enabled? David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2014-02-27 2:05 GMT-08:00 David Laight <David.Laight@aculab.com>: > From: Florian Fainelli >> Introduce a new configure script option: --enable-small which will >> disable building the driver specific register dump objects, the savings >> are: > ... >> +if !SMALL >> +ethtool_SOURCES += \ >> amd8111e.c de2104x.c e100.c e1000.c et131x.c igb.c \ >> fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ >> pcnet32.c realtek.c tg3.c marvell.c vioc.c \ >> smsc911x.c at76c50x-usb.c sfc.c stmmac.c \ >> - rxclass.c sfpid.c sfpdiag.c ixgbevf.c >> + sfpid.c sfpdiag.c ixgbevf.c >> +endif > > What about allowing a subset of the register dumps be enabled? Sure, I can do that too, as a separate list of changes though. How would you like to see that impelmented: --with-drivers="amd8111e de2104x....ixgbevf" or with individual per-driver switches: --with-adm8111e --with-de2104x
On Wed, 2014-02-26 at 17:35 -0800, Florian Fainelli wrote: > Introduce a new configure script option: --enable-small which will > disable building the driver specific register dump objects, the savings > are: > > ~500 Kbytes on a x86_64 build > ~337 Kbytes on a arm build OK, I can see that will be useful in some environments. [...] > --- a/configure.ac > +++ b/configure.ac > @@ -30,5 +30,13 @@ dnl Checks for library functions. > AC_HEADER_STDC > AC_CHECK_FUNCS(socket strtol) > > +dnl Check for options > +AC_ARG_ENABLE(small, > + [ --enable-small disable registers and EEPROM pretty dumps (disabled by default)], That's a slightly confusing description. It could be read as meaning that the pretty dumps are disabled by default. Maybe change the sense of this and call it --enable-pretty-dump, enabled by default? > + [if test x$enableval = xyes; then > + AC_DEFINE(SMALL, 1, [Define this to disable register and EEPROM pretty dumps.]) enable_small=yes > + fi]) > +AM_CONDITIONAL([SMALL], [test x$enable_small = xyes]) [...] As this is defining a macro which is effectively global, please rename it to a more specific name like ETHTOOL_SMALL (or reversing the sense, ETHTOOL_ENABLE_PRETTY_DUMP). Please also make the ethtool --version option report whether it's a small build. Ben.
On Thu, 2014-02-27 at 10:05 +0000, David Laight wrote: > From: Florian Fainelli > > Introduce a new configure script option: --enable-small which will > > disable building the driver specific register dump objects, the savings > > are: > ... > > +if !SMALL > > +ethtool_SOURCES += \ > > amd8111e.c de2104x.c e100.c e1000.c et131x.c igb.c \ > > fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ > > pcnet32.c realtek.c tg3.c marvell.c vioc.c \ > > smsc911x.c at76c50x-usb.c sfc.c stmmac.c \ > > - rxclass.c sfpid.c sfpdiag.c ixgbevf.c > > + sfpid.c sfpdiag.c ixgbevf.c > > +endif > > What about allowing a subset of the register dumps be enabled? I'm not interested in this. Ben.
diff --git a/Makefile.am b/Makefile.am index db89d94b168e..05d140008a9c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,11 +6,15 @@ EXTRA_DIST = LICENSE ethtool.8 ethtool.spec.in aclocal.m4 ChangeLog autogen.sh sbin_PROGRAMS = ethtool ethtool_SOURCES = ethtool.c ethtool-copy.h internal.h net_tstamp-copy.h \ + rxclass.c +if !SMALL +ethtool_SOURCES += \ amd8111e.c de2104x.c e100.c e1000.c et131x.c igb.c \ fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ pcnet32.c realtek.c tg3.c marvell.c vioc.c \ smsc911x.c at76c50x-usb.c sfc.c stmmac.c \ - rxclass.c sfpid.c sfpdiag.c ixgbevf.c + sfpid.c sfpdiag.c ixgbevf.c +endif TESTS = test-cmdline test-features check_PROGRAMS = test-cmdline test-features diff --git a/configure.ac b/configure.ac index ac7977a777f0..995d937db4c9 100644 --- a/configure.ac +++ b/configure.ac @@ -30,5 +30,13 @@ dnl Checks for library functions. AC_HEADER_STDC AC_CHECK_FUNCS(socket strtol) +dnl Check for options +AC_ARG_ENABLE(small, + [ --enable-small disable registers and EEPROM pretty dumps (disabled by default)], + [if test x$enableval = xyes; then + AC_DEFINE(SMALL, 1, [Define this to disable register and EEPROM pretty dumps.]) enable_small=yes + fi]) +AM_CONDITIONAL([SMALL], [test x$enable_small = xyes]) + AC_CONFIG_FILES([Makefile ethtool.spec ethtool.8]) AC_OUTPUT diff --git a/ethtool.c b/ethtool.c index 315d00f5102f..ff4822389b67 100644 --- a/ethtool.c +++ b/ethtool.c @@ -877,6 +877,7 @@ static const struct { int (*func)(struct ethtool_drvinfo *info, struct ethtool_regs *regs); } driver_list[] = { +#ifndef SMALL { "8139cp", realtek_dump_regs }, { "8139too", realtek_dump_regs }, { "r8169", realtek_dump_regs }, @@ -903,6 +904,7 @@ static const struct { { "st_mac100", st_mac100_dump_regs }, { "st_gmac", st_gmac_dump_regs }, { "et131x", et131x_dump_regs }, +#endif }; void dump_hex(FILE *file, const u8 *data, int len, int offset) @@ -971,13 +973,13 @@ static int dump_eeprom(int geeprom_dump_raw, struct ethtool_drvinfo *info, fwrite(ee->data, 1, ee->len, stdout); return 0; } - +#ifndef SMALL if (!strncmp("natsemi", info->driver, ETHTOOL_BUSINFO_LEN)) { return natsemi_dump_eeprom(info, ee); } else if (!strncmp("tg3", info->driver, ETHTOOL_BUSINFO_LEN)) { return tg3_dump_eeprom(info, ee); } - +#endif dump_hex(stdout, ee->data, ee->len, ee->offset); return 0; @@ -3633,6 +3635,7 @@ static int do_getmodule(struct cmd_context *ctx) geeprom_dump_hex = 1; } else if (!geeprom_dump_hex) { switch (modinfo.type) { +#ifndef SMALL case ETH_MODULE_SFF_8079: sff8079_show_all(eeprom->data); break; @@ -3640,6 +3643,7 @@ static int do_getmodule(struct cmd_context *ctx) sff8079_show_all(eeprom->data); sff8472_show_all(eeprom->data); break; +#endif default: geeprom_dump_hex = 1; break;
Introduce a new configure script option: --enable-small which will disable building the driver specific register dump objects, the savings are: ~500 Kbytes on a x86_64 build ~337 Kbytes on a arm build Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- Makefile.am | 6 +++++- configure.ac | 8 ++++++++ ethtool.c | 8 ++++++-- 3 files changed, 19 insertions(+), 3 deletions(-)