From: Larry Finger <Larry.Finger@lwfinger.net>
To: Joe Perches <joe@perches.com>, Chaoming Li <chaoming_li@realsil.com.cn>
Cc: Kalle Valo <kvalo@codeaurora.org>,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] rtlwifi: Create _rtl_dbg_trace function to reduce RT_TRACE code size
Date: Mon, 27 Jun 2016 19:53:00 -0500 [thread overview]
Message-ID: <5771CA6C.1060403@lwfinger.net> (raw)
In-Reply-To: <90cd7c8f12b51571db565fd496a2fcf610e2e484.1466894688.git.joe@perches.com>
On 06/25/2016 05:46 PM, Joe Perches wrote:
> This debugging macro can expand to a lot of code.
> Make it a function to reduce code size.
>
> (x86-64 defconfig w/ all rtlwifi drivers and allyesconfig)
> $ size drivers/net/wireless/realtek/rtlwifi/built-in.o*
> text data bss dec hex filename
> 900083 200499 1907 1102489 10d299 drivers/net/wireless/realtek/rtlwifi/built-in.o.defconfig.new
> 1113597 200499 1907 1316003 1414a3 drivers/net/wireless/realtek/rtlwifi/built-in.o.defconfig.old
> 1746879 453503 8512 2208894 21b47e drivers/net/wireless/realtek/rtlwifi/built-in.o.new
> 2051965 503311 8512 2563788 271ecc drivers/net/wireless/realtek/rtlwifi/built-in.o.old
>
> Signed-off-by: Joe Perches <joe@perches.com>
I acked this before; however there is a bug that breaks the build if
CONFIG_RTLWIFI_DEBUG is not defined. The rest of the code calls
_rtl_dbg_trace(), but that symbol is never defined. The problem can be fixed in
debug.c or debug.h.
Larry
> ---
> drivers/net/wireless/realtek/rtlwifi/debug.c | 25 +++++++++++++++++++++++++
> drivers/net/wireless/realtek/rtlwifi/debug.h | 17 +++++++++--------
> 2 files changed, 34 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/debug.c b/drivers/net/wireless/realtek/rtlwifi/debug.c
> index fd25aba..33905bb 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/debug.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/debug.c
> @@ -48,3 +48,28 @@ void rtl_dbgp_flag_init(struct ieee80211_hw *hw)
> /*Init Debug flag enable condition */
> }
> EXPORT_SYMBOL_GPL(rtl_dbgp_flag_init);
> +
> +#ifdef CONFIG_RTLWIFI_DEBUG
> +void _rtl_dbg_trace(struct rtl_priv *rtlpriv, int comp, int level,
> + const char *modname, const char *fmt, ...)
> +{
> + if (unlikely((comp & rtlpriv->dbg.global_debugcomponents) &&
> + (level <= rtlpriv->dbg.global_debuglevel))) {
> + struct va_format vaf;
> + va_list args;
> +
> + va_start(args, fmt);
> +
> + vaf.fmt = fmt;
> + vaf.va = &args;
> +
> + printk(KERN_DEBUG "%s:%ps:<%lx-%x> %pV",
> + modname, __builtin_return_address(0),
> + in_interrupt(), in_atomic(),
> + &vaf);
> +
> + va_end(args);
> + }
> +}
> +EXPORT_SYMBOL_GPL(_rtl_dbg_trace);
> +#endif
> diff --git a/drivers/net/wireless/realtek/rtlwifi/debug.h b/drivers/net/wireless/realtek/rtlwifi/debug.h
> index fc794b3..6156a79 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/debug.h
> +++ b/drivers/net/wireless/realtek/rtlwifi/debug.h
> @@ -174,15 +174,16 @@ do { \
> } \
> } while (0)
>
> +
> +struct rtl_priv;
> +
> +__printf(5, 6)
> +void _rtl_dbg_trace(struct rtl_priv *rtlpriv, int comp, int level,
> + const char *modname, const char *fmt, ...);
> +
> #define RT_TRACE(rtlpriv, comp, level, fmt, ...) \
> -do { \
> - if (unlikely(((comp) & rtlpriv->dbg.global_debugcomponents) && \
> - ((level) <= rtlpriv->dbg.global_debuglevel))) { \
> - printk(KERN_DEBUG KBUILD_MODNAME ":%s():<%lx-%x> " fmt, \
> - __func__, in_interrupt(), in_atomic(), \
> - ##__VA_ARGS__); \
> - } \
> -} while (0)
> + _rtl_dbg_trace(rtlpriv, comp, level, \
> + KBUILD_MODNAME, fmt, ##__VA_ARGS__)
>
> #define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...) \
> do { \
>
next prev parent reply other threads:[~2016-06-28 0:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-25 22:46 [PATCH] rtlwifi: Create _rtl_dbg_trace function to reduce RT_TRACE code size Joe Perches
2016-06-27 0:19 ` Larry Finger
2016-06-28 0:53 ` Larry Finger [this message]
2016-06-28 3:55 ` Joe Perches
2016-06-28 14:19 ` Larry Finger
2016-06-28 14:19 ` Larry Finger
2016-07-08 9:55 ` Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5771CA6C.1060403@lwfinger.net \
--to=larry.finger@lwfinger.net \
--cc=chaoming_li@realsil.com.cn \
--cc=joe@perches.com \
--cc=kvalo@codeaurora.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.