Commit 17d39fac authored by Jacob Keller's avatar Jacob Keller Committed by Jeff Kirsher

fm10k: add statistics for actual DWORD count of mbmem mailbox

A previous bug was uncovered by addition of a debug stat to indicate the
actual number of DWORDS we pulled from the mbmem. It turned out this was
not the same as the tx_dwords counter. While the previous bug fix should
have corrected this in all cases, add some debug stats that count the
number of DWORDs pushed or pulled from the mbmem. A future debugger may
take advantage of this statistic for debugging purposes. Since we're
modifying fm10k_mbx.h, update the copyright year as well.
Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Reviewed-by: default avatarBruce Allan <bruce.w.allan@intel.com>
Tested-by: default avatarKrishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent cdf32c94
...@@ -114,9 +114,11 @@ static const struct fm10k_stats fm10k_gstrings_mbx_stats[] = { ...@@ -114,9 +114,11 @@ static const struct fm10k_stats fm10k_gstrings_mbx_stats[] = {
FM10K_MBX_STAT("mbx_tx_oversized", tx_dropped), FM10K_MBX_STAT("mbx_tx_oversized", tx_dropped),
FM10K_MBX_STAT("mbx_tx_messages", tx_messages), FM10K_MBX_STAT("mbx_tx_messages", tx_messages),
FM10K_MBX_STAT("mbx_tx_dwords", tx_dwords), FM10K_MBX_STAT("mbx_tx_dwords", tx_dwords),
FM10K_MBX_STAT("mbx_tx_mbmem_pulled", tx_mbmem_pulled),
FM10K_MBX_STAT("mbx_rx_messages", rx_messages), FM10K_MBX_STAT("mbx_rx_messages", rx_messages),
FM10K_MBX_STAT("mbx_rx_dwords", rx_dwords), FM10K_MBX_STAT("mbx_rx_dwords", rx_dwords),
FM10K_MBX_STAT("mbx_rx_parse_err", rx_parse_err), FM10K_MBX_STAT("mbx_rx_parse_err", rx_parse_err),
FM10K_MBX_STAT("mbx_rx_mbmem_pushed", rx_mbmem_pushed),
}; };
#define FM10K_GLOBAL_STATS_LEN ARRAY_SIZE(fm10k_gstrings_global_stats) #define FM10K_GLOBAL_STATS_LEN ARRAY_SIZE(fm10k_gstrings_global_stats)
......
...@@ -375,6 +375,8 @@ static void fm10k_mbx_write_copy(struct fm10k_hw *hw, ...@@ -375,6 +375,8 @@ static void fm10k_mbx_write_copy(struct fm10k_hw *hw,
if (!tail) if (!tail)
tail++; tail++;
mbx->tx_mbmem_pulled++;
/* write message to hardware FIFO */ /* write message to hardware FIFO */
fm10k_write_reg(hw, mbmem + tail++, *(head++)); fm10k_write_reg(hw, mbmem + tail++, *(head++));
} while (--len && --end); } while (--len && --end);
...@@ -459,6 +461,8 @@ static void fm10k_mbx_read_copy(struct fm10k_hw *hw, ...@@ -459,6 +461,8 @@ static void fm10k_mbx_read_copy(struct fm10k_hw *hw,
if (!head) if (!head)
head++; head++;
mbx->rx_mbmem_pushed++;
/* read message from hardware FIFO */ /* read message from hardware FIFO */
*(tail++) = fm10k_read_reg(hw, mbmem + head++); *(tail++) = fm10k_read_reg(hw, mbmem + head++);
} while (--len && --end); } while (--len && --end);
......
/* Intel Ethernet Switch Host Interface Driver /* Intel Ethernet Switch Host Interface Driver
* Copyright(c) 2013 - 2014 Intel Corporation. * Copyright(c) 2013 - 2015 Intel Corporation.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License, * under the terms and conditions of the GNU General Public License,
...@@ -291,8 +291,10 @@ struct fm10k_mbx_info { ...@@ -291,8 +291,10 @@ struct fm10k_mbx_info {
u64 tx_dropped; u64 tx_dropped;
u64 tx_messages; u64 tx_messages;
u64 tx_dwords; u64 tx_dwords;
u64 tx_mbmem_pulled;
u64 rx_messages; u64 rx_messages;
u64 rx_dwords; u64 rx_dwords;
u64 rx_mbmem_pushed;
u64 rx_parse_err; u64 rx_parse_err;
/* Buffer to store messages */ /* Buffer to store messages */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment