From: "Bhanu Prakash Gollapudi" <bprakash@broadcom.com>
To: Joe Perches <joe@perches.com>
Cc: "James E.J. Bottomley" <JBottomley@parallels.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] bnx2fc: Reduce object size by consolidating formats
Date: Tue, 22 Nov 2011 17:47:03 -0800 [thread overview]
Message-ID: <4ECC5097.2050908@broadcom.com> (raw)
In-Reply-To: <fe83ffc5f085b65765262b3c5c74740eb82c9442.1321738492.git.joe@perches.com>
On 11/19/2011 1:35 PM, Joe Perches wrote:
> Deduplication of formats and consolidating tests
> makes the object much smaller.
>
> Add bnx2fc_debug.c, add functions for a few logging
> functions (BNX2FC_IO_DBG, BNX2FC_TGT_DBG, BNX2FC_HBA_DBG).
> Use printf extension %pV.
> Add and use pr_fmt and pr_<level>.
> Move the debug #include below structure definitions.
>
> $ size drivers/scsi/bnx2fc/built-in.o*
> text data bss dec hex filename
> 101563 1165 24976 127704 1f2d8 drivers/scsi/bnx2fc/built-in.o.new
> 138473 1109 33400 172982 2a3b6 drivers/scsi/bnx2fc/built-in.o.old
>
> Signed-off-by: Joe Perches<joe@perches.com>
Thanks Joe.
Acked-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
> ---
> drivers/scsi/bnx2fc/Makefile | 3 +-
> drivers/scsi/bnx2fc/bnx2fc.h | 6 ++-
> drivers/scsi/bnx2fc/bnx2fc_debug.c | 70 ++++++++++++++++++++++++++++++++++
> drivers/scsi/bnx2fc/bnx2fc_debug.h | 73 +++++++++---------------------------
> 4 files changed, 95 insertions(+), 57 deletions(-)
> create mode 100644 drivers/scsi/bnx2fc/bnx2fc_debug.c
>
> diff --git a/drivers/scsi/bnx2fc/Makefile b/drivers/scsi/bnx2fc/Makefile
> index a92695a..141149e 100644
> --- a/drivers/scsi/bnx2fc/Makefile
> +++ b/drivers/scsi/bnx2fc/Makefile
> @@ -1,3 +1,4 @@
> obj-$(CONFIG_SCSI_BNX2X_FCOE) += bnx2fc.o
>
> -bnx2fc-y := bnx2fc_els.o bnx2fc_fcoe.o bnx2fc_hwi.o bnx2fc_io.o bnx2fc_tgt.o
> +bnx2fc-y := bnx2fc_els.o bnx2fc_fcoe.o bnx2fc_hwi.o bnx2fc_io.o bnx2fc_tgt.o \
> + bnx2fc_debug.o
> diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
> index 049ea90..8fbf44f 100644
> --- a/drivers/scsi/bnx2fc/bnx2fc.h
> +++ b/drivers/scsi/bnx2fc/bnx2fc.h
> @@ -11,6 +11,8 @@
> * Written by: Bhanu Prakash Gollapudi (bprakash@broadcom.com)
> */
>
> +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> +
> #include<linux/module.h>
> #include<linux/moduleparam.h>
> #include<linux/kernel.h>
> @@ -57,7 +59,6 @@
> #include<scsi/fc/fc_fcp.h>
>
> #include "57xx_hsi_bnx2fc.h"
> -#include "bnx2fc_debug.h"
> #include "../../net/ethernet/broadcom/cnic_if.h"
> #include "bnx2fc_constants.h"
>
> @@ -547,4 +548,7 @@ void bnx2fc_process_seq_cleanup_compl(struct bnx2fc_cmd *seq_clnup_req,
> int bnx2fc_initiate_seq_cleanup(struct bnx2fc_cmd *orig_io_req, u32 offset,
> enum fc_rctl r_ctl);
>
> +
> +#include "bnx2fc_debug.h"
> +
> #endif
> diff --git a/drivers/scsi/bnx2fc/bnx2fc_debug.c b/drivers/scsi/bnx2fc/bnx2fc_debug.c
> new file mode 100644
> index 0000000..0cbee1b
> --- /dev/null
> +++ b/drivers/scsi/bnx2fc/bnx2fc_debug.c
> @@ -0,0 +1,70 @@
> +#include "bnx2fc.h"
> +
> +void BNX2FC_IO_DBG(const struct bnx2fc_cmd *io_req, const char *fmt, ...)
> +{
> + struct va_format vaf;
> + va_list args;
> +
> + if (likely(!(bnx2fc_debug_level& LOG_IO)))
> + return;
> +
> + va_start(args, fmt);
> +
> + vaf.fmt = fmt;
> + vaf.va =&args;
> +
> + if (io_req&& io_req->port&& io_req->port->lport&&
> + io_req->port->lport->host)
> + shost_printk(KERN_INFO, io_req->port->lport->host,
> + PFX "xid:0x%x %pV",
> + io_req->xid,&vaf);
> + else
> + pr_info("NULL %pV",&vaf);
> +
> + va_end(args);
> +}
> +
> +void BNX2FC_TGT_DBG(const struct bnx2fc_rport *tgt, const char *fmt, ...)
> +{
> + struct va_format vaf;
> + va_list args;
> +
> + if (likely(!(bnx2fc_debug_level& LOG_TGT)))
> + return;
> +
> + va_start(args, fmt);
> +
> + vaf.fmt = fmt;
> + vaf.va =&args;
> +
> + if (tgt&& tgt->port&& tgt->port->lport&& tgt->port->lport->host&&
> + tgt->rport)
> + shost_printk(KERN_INFO, tgt->port->lport->host,
> + PFX "port:%x %pV",
> + tgt->rport->port_id,&vaf);
> + else
> + pr_info("NULL %pV",&vaf);
> +
> + va_end(args);
> +}
> +
> +void BNX2FC_HBA_DBG(const struct fc_lport *lport, const char *fmt, ...)
> +{
> + struct va_format vaf;
> + va_list args;
> +
> + if (likely(!(bnx2fc_debug_level& LOG_HBA)))
> + return;
> +
> + va_start(args, fmt);
> +
> + vaf.fmt = fmt;
> + vaf.va =&args;
> +
> + if (lport&& lport->host)
> + shost_printk(KERN_INFO, lport->host, PFX "%pV",&vaf);
> + else
> + pr_info("NULL %pV",&vaf);
> +
> + va_end(args);
> +}
> diff --git a/drivers/scsi/bnx2fc/bnx2fc_debug.h b/drivers/scsi/bnx2fc/bnx2fc_debug.h
> index 3416d9a..4808ff9 100644
> --- a/drivers/scsi/bnx2fc/bnx2fc_debug.h
> +++ b/drivers/scsi/bnx2fc/bnx2fc_debug.h
> @@ -11,60 +11,23 @@
>
> extern unsigned int bnx2fc_debug_level;
>
> -#define BNX2FC_CHK_LOGGING(LEVEL, CMD) \
> - do { \
> - if (unlikely(bnx2fc_debug_level& LEVEL)) \
> - do { \
> - CMD; \
> - } while (0); \
> - } while (0)
> -
> -#define BNX2FC_ELS_DBG(fmt, arg...) \
> - BNX2FC_CHK_LOGGING(LOG_ELS, \
> - printk(KERN_INFO PFX fmt, ##arg))
> -
> -#define BNX2FC_MISC_DBG(fmt, arg...) \
> - BNX2FC_CHK_LOGGING(LOG_MISC, \
> - printk(KERN_INFO PFX fmt, ##arg))
> -
> -#define BNX2FC_IO_DBG(io_req, fmt, arg...) \
> - do { \
> - if (!io_req || !io_req->port || !io_req->port->lport || \
> - !io_req->port->lport->host) \
> - BNX2FC_CHK_LOGGING(LOG_IO, \
> - printk(KERN_INFO PFX "NULL " fmt, ##arg)); \
> - else \
> - BNX2FC_CHK_LOGGING(LOG_IO, \
> - shost_printk(KERN_INFO, \
> - (io_req)->port->lport->host, \
> - PFX "xid:0x%x " fmt, \
> - (io_req)->xid, ##arg)); \
> - } while (0)
> -
> -#define BNX2FC_TGT_DBG(tgt, fmt, arg...) \
> - do { \
> - if (!tgt || !tgt->port || !tgt->port->lport || \
> - !tgt->port->lport->host || !tgt->rport) \
> - BNX2FC_CHK_LOGGING(LOG_TGT, \
> - printk(KERN_INFO PFX "NULL " fmt, ##arg)); \
> - else \
> - BNX2FC_CHK_LOGGING(LOG_TGT, \
> - shost_printk(KERN_INFO, \
> - (tgt)->port->lport->host, \
> - PFX "port:%x " fmt, \
> - (tgt)->rport->port_id, ##arg)); \
> - } while (0)
> -
> -
> -#define BNX2FC_HBA_DBG(lport, fmt, arg...) \
> - do { \
> - if (!lport || !lport->host) \
> - BNX2FC_CHK_LOGGING(LOG_HBA, \
> - printk(KERN_INFO PFX "NULL " fmt, ##arg)); \
> - else \
> - BNX2FC_CHK_LOGGING(LOG_HBA, \
> - shost_printk(KERN_INFO, lport->host, \
> - PFX fmt, ##arg)); \
> - } while (0)
> +#define BNX2FC_ELS_DBG(fmt, ...) \
> +do { \
> + if (unlikely(bnx2fc_debug_level& LOG_ELS)) \
> + pr_info(fmt, ##__VA_ARGS__); \
> +} while (0)
> +
> +#define BNX2FC_MISC_DBG(fmt, ...) \
> +do { \
> + if (unlikely(bnx2fc_debug_level& LOG_MISC)) \
> + pr_info(fmt, ##__VA_ARGS__); \
> +} while (0)
> +
> +__printf(2, 3)
> +void BNX2FC_IO_DBG(const struct bnx2fc_cmd *io_req, const char *fmt, ...);
> +__printf(2, 3)
> +void BNX2FC_TGT_DBG(const struct bnx2fc_rport *tgt, const char *fmt, ...);
> +__printf(2, 3)
> +void BNX2FC_HBA_DBG(const struct fc_lport *lport, const char *fmt, ...);
>
> #endif
next prev parent reply other threads:[~2011-11-23 1:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-19 21:35 [PATCH] bnx2fc: Reduce object size by consolidating formats Joe Perches
2011-11-23 1:47 ` Bhanu Prakash Gollapudi [this message]
2012-01-03 18:42 ` Joe Perches
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=4ECC5097.2050908@broadcom.com \
--to=bprakash@broadcom.com \
--cc=JBottomley@parallels.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@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.