net/i40e/base: improve AQ log granularity
authorXiaolong Ye <xiaolong.ye@intel.com>
Mon, 13 Jan 2020 02:39:22 +0000 (10:39 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 17 Jan 2020 18:46:02 +0000 (19:46 +0100)
This patch makes it possible to log only AQ descriptors, without the
entire AQ message buffers being dumped too. It should greatly reduce
kernel log size in cases where a full AQ dump is not needed.
Selection is made by setting flags in hw->debug_mask.

Additionally, some debug messages that preceded an AQ dump have been
moved to I40E_DEBUG_AQ_COMMAND class, which seems more appropriate.

Signed-off-by: Doug Dziggel <douglas.a.dziggel@intel.com>
Signed-off-by: Robert Konklewski <robertx.konklewski@intel.com>
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
drivers/net/i40e/base/i40e_adminq.c
drivers/net/i40e/base/i40e_common.c

index b8c6e30..52bea84 100644 (file)
@@ -715,7 +715,7 @@ u16 i40e_clean_asq(struct i40e_hw *hw)
        desc = I40E_ADMINQ_DESC(*asq, ntc);
        details = I40E_ADMINQ_DETAILS(*asq, ntc);
        while (rd32(hw, hw->aq.asq.head) != ntc) {
-               i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE,
+               i40e_debug(hw, I40E_DEBUG_AQ_COMMAND,
                           "ntc %d head %d.\n", ntc, rd32(hw, hw->aq.asq.head));
 
                if (details->callback) {
@@ -887,7 +887,7 @@ enum i40e_status_code i40e_asq_send_command(struct i40e_hw *hw,
        }
 
        /* bump the tail */
-       i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, "AQTX: desc and buffer:\n");
+       i40e_debug(hw, I40E_DEBUG_AQ_COMMAND, "AQTX: desc and buffer:\n");
        i40e_debug_aq(hw, I40E_DEBUG_AQ_COMMAND, (void *)desc_on_ring,
                      buff, buff_size);
        (hw->aq.asq.next_to_use)++;
@@ -940,7 +940,7 @@ enum i40e_status_code i40e_asq_send_command(struct i40e_hw *hw,
                hw->aq.asq_last_status = (enum i40e_admin_queue_err)retval;
        }
 
-       i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE,
+       i40e_debug(hw, I40E_DEBUG_AQ_COMMAND,
                   "AQTX: desc and buffer writeback:\n");
        i40e_debug_aq(hw, I40E_DEBUG_AQ_COMMAND, (void *)desc, buff, buff_size);
 
@@ -1069,7 +1069,7 @@ enum i40e_status_code i40e_clean_arq_element(struct i40e_hw *hw,
                            hw->aq.arq.r.arq_bi[desc_idx].va,
                            e->msg_len, I40E_DMA_TO_NONDMA);
 
-       i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, "AQRX: desc and buffer:\n");
+       i40e_debug(hw, I40E_DEBUG_AQ_COMMAND, "AQRX: desc and buffer:\n");
        i40e_debug_aq(hw, I40E_DEBUG_AQ_COMMAND, (void *)desc, e->msg_buf,
                      hw->aq.arq_buf_size);
 
index 73d0c29..4384a07 100644 (file)
@@ -307,32 +307,37 @@ void i40e_debug_aq(struct i40e_hw *hw, enum i40e_debug_mask mask, void *desc,
                   void *buffer, u16 buf_len)
 {
        struct i40e_aq_desc *aq_desc = (struct i40e_aq_desc *)desc;
+       u32 effective_mask = hw->debug_mask & mask;
        u8 *buf = (u8 *)buffer;
        u16 len;
-       u16 i = 0;
+       u16 i;
 
-       if ((!(mask & hw->debug_mask)) || (desc == NULL))
+       if (!effective_mask || !desc)
                return;
 
        len = LE16_TO_CPU(aq_desc->datalen);
 
-       i40e_debug(hw, mask,
+       i40e_debug(hw, mask & I40E_DEBUG_AQ_DESCRIPTOR,
                   "AQ CMD: opcode 0x%04X, flags 0x%04X, datalen 0x%04X, retval 0x%04X\n",
                   LE16_TO_CPU(aq_desc->opcode),
                   LE16_TO_CPU(aq_desc->flags),
                   LE16_TO_CPU(aq_desc->datalen),
                   LE16_TO_CPU(aq_desc->retval));
-       i40e_debug(hw, mask, "\tcookie (h,l) 0x%08X 0x%08X\n",
+       i40e_debug(hw, mask & I40E_DEBUG_AQ_DESCRIPTOR,
+                  "\tcookie (h,l) 0x%08X 0x%08X\n",
                   LE32_TO_CPU(aq_desc->cookie_high),
                   LE32_TO_CPU(aq_desc->cookie_low));
-       i40e_debug(hw, mask, "\tparam (0,1)  0x%08X 0x%08X\n",
+       i40e_debug(hw, mask & I40E_DEBUG_AQ_DESCRIPTOR,
+                  "\tparam (0,1)  0x%08X 0x%08X\n",
                   LE32_TO_CPU(aq_desc->params.internal.param0),
                   LE32_TO_CPU(aq_desc->params.internal.param1));
-       i40e_debug(hw, mask, "\taddr (h,l)   0x%08X 0x%08X\n",
+       i40e_debug(hw, mask & I40E_DEBUG_AQ_DESCRIPTOR,
+                  "\taddr (h,l)   0x%08X 0x%08X\n",
                   LE32_TO_CPU(aq_desc->params.external.addr_high),
                   LE32_TO_CPU(aq_desc->params.external.addr_low));
 
-       if ((buffer != NULL) && (aq_desc->datalen != 0)) {
+       if (buffer && (buf_len != 0) && (len != 0) &&
+           (effective_mask & I40E_DEBUG_AQ_DESC_BUFFER)) {
                i40e_debug(hw, mask, "AQ CMD Buffer:\n");
                if (buf_len < len)
                        len = buf_len;