Re: [PATCH] qed: Add and use specific logging functions to reduce object size
From: Joe Perches
Date: Sun Jul 31 2016 - 14:05:28 EST
On Wed, 2016-07-27 at 07:24 +0000, Yuval Mintz wrote:
> >
> > 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