Thread (6 messages) 6 messages, 3 authors, 2016-07-31

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.c
This 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help