Re: [PATCH] qed: Add and use specific logging functions to reduce object size
From: Joe Perches <joe@perches.com>
Date: 2016-07-31 18:05:01
Also in:
lkml
On Wed, 2016-07-27 at 07:24 +0000, Yuval Mintz wrote:
quoted
Current DP_ macros generate a lot of code. Using functions with vsprintf extension %pV helps reduce that size. drivers/net/ethernet/qlogic/qed/Makefile | 2 +- drivers/net/ethernet/qlogic/qed/qed_util.c | 82 ++++++++++++++++++++++++++++++ include/linux/qed/qed_if.h | 60 +++++++++------------- 3 files changed, 106 insertions(+), 38 deletions(-) create mode 100644 drivers/net/ethernet/qlogic/qed/qed_util.cThis won't compile when CONFIG_QED*=m, as qede can't link to the new qed_{err, verbose, info, notice} functions. That was the original reason for putting the macros in the interface header. Other alternatives: - We can EXPORT_SYMBOL() the functions, although we've taken a strain not adding such to the interface. - Code duplication between qed/qede [ugly]. - Implementing this in qede via the interface functions with qed; But the notion of defining an interface between 2 modules passing va_args seems [to me] like a bad one. If you have cleaner solutions, I'd be happy to hear those.
Hello Yuval. EXPORT_SYMBOL is probably the simplest solution. It's pretty commonly used for private logging functions in drivers/net/, e.g.: drivers/net/wireless/ath/main.c I'll submit that in awhile. cheers, Joe