RE: [PATCH] qed: Add and use specific logging functions to reduce object size

From: Yuval Mintz
Date: Wed Jul 27 2016 - 04:58:24 EST


> Current DP_<LEVEL> 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.