Re: [PATCH] qla2xxx: Don't memset buffer unless debug level is enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Looks good. Thanks for the find.

Acked-by: Chad Dupuis <chad.dupuis@xxxxxxxxxx>

On Wed, 30 Nov 2011, Nicholas A. Bellinger wrote:

From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>

During recent perf testing with qla_target.c logic, dl_dbg() appeared
as one of the top CPU consumers (~5% CPU) with small block random I/O
even when no debug levels have been enabled.

This patch moves the explict memset() in four qla_dbc.c functions
within code blocks to where we know it will actually be used to save
the extra wasted cycles.

Cc: Andrew Vasquez <andrew.vasquez@xxxxxxxxxx>
Cc: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx>
Cc: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Cc: Joern Engel <joern@xxxxxxxxx>
Cc: James Bottomley <JBottomley@xxxxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
---
drivers/scsi/qla2xxx/qla_dbg.c |   16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c
index 07372de..cc32ec8 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.c
+++ b/drivers/scsi/qla2xxx/qla_dbg.c
@@ -1676,11 +1676,11 @@ ql_dbg(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg, ...) {
      uint32_t len;
      struct pci_dev *pdev = NULL;

-     memset(pbuf, 0, QL_DBG_BUF_LEN);
-
      va_start(ap, msg);

      if ((level & ql2xextended_error_logging) == level) {
+             memset(pbuf, 0, QL_DBG_BUF_LEN);
+
              if (vha != NULL) {
                      pdev = vha->hw->pdev;
                      /* <module-name> <pci-name> <msg-id>:<host> Message */
@@ -1724,11 +1724,11 @@ ql_dbg_pci(uint32_t level, struct pci_dev *pdev, int32_t id, char *msg, ...) {
      if (pdev == NULL)
              return;

-     memset(pbuf, 0, QL_DBG_BUF_LEN);
-
      va_start(ap, msg);

      if ((level & ql2xextended_error_logging) == level) {
+             memset(pbuf, 0, QL_DBG_BUF_LEN);
+
              /* <module-name> <dev-name>:<msg-id> Message */
              sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
                  dev_name(&(pdev->dev)), id + ql_dbg_offset);
@@ -1763,11 +1763,11 @@ ql_log(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg, ...) {
      uint32_t len;
      struct pci_dev *pdev = NULL;

-     memset(pbuf, 0, QL_DBG_BUF_LEN);
-
      va_start(ap, msg);

      if (level <= ql_errlev) {
+             memset(pbuf, 0, QL_DBG_BUF_LEN);
+
              if (vha != NULL) {
                      pdev = vha->hw->pdev;
                      /* <module-name> <msg-id>:<host> Message */
@@ -1823,11 +1823,11 @@ ql_log_pci(uint32_t level, struct pci_dev *pdev, int32_t id, char *msg, ...) {
      if (pdev == NULL)
              return;

-     memset(pbuf, 0, QL_DBG_BUF_LEN);
-
      va_start(ap, msg);

      if (level <= ql_errlev) {
+             memset(pbuf, 0, QL_DBG_BUF_LEN);
+
              /* <module-name> <dev-name>:<msg-id> Message */
              sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
                  dev_name(&(pdev->dev)), id);


This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux