Skip to content

Commit

Permalink
tg3: Fix stats for 5704 and later devices
Browse files Browse the repository at this point in the history
Commit 4d95847, entitled
"tg3: Workaround rx_discards stat bug" modified the hardware statistics
data structure.  The modification shifted the statistics so that the
labels no longer corresponded to the counter values.  This patch fixes
the problem by utilizing reserved space for the new counters.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Matt Carlson authored and David S. Miller committed May 19, 2011
1 parent 54e0a67 commit 4452d09
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
7 changes: 5 additions & 2 deletions drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,6 @@ static const struct {
{ "dma_write_prioq_full" },
{ "rxbds_empty" },
{ "rx_discards" },
{ "mbuf_lwm_thresh_hit" },
{ "rx_errors" },
{ "rx_threshold_hit" },

Expand All @@ -376,7 +375,9 @@ static const struct {
{ "ring_status_update" },
{ "nic_irqs" },
{ "nic_avoided_irqs" },
{ "nic_tx_threshold_hit" }
{ "nic_tx_threshold_hit" },

{ "mbuf_lwm_thresh_hit" },
};

#define TG3_NUM_STATS ARRAY_SIZE(ethtool_stats_keys)
Expand Down Expand Up @@ -9546,6 +9547,8 @@ static struct tg3_ethtool_stats *tg3_get_estats(struct tg3 *tp)
ESTAT_ADD(nic_avoided_irqs);
ESTAT_ADD(nic_tx_threshold_hit);

ESTAT_ADD(mbuf_lwm_thresh_hit);

return estats;
}

Expand Down
10 changes: 8 additions & 2 deletions drivers/net/tg3.h
Original file line number Diff line number Diff line change
Expand Up @@ -2620,7 +2620,6 @@ struct tg3_hw_stats {
tg3_stat64_t dma_write_prioq_full;
tg3_stat64_t rxbds_empty;
tg3_stat64_t rx_discards;
tg3_stat64_t mbuf_lwm_thresh_hit;
tg3_stat64_t rx_errors;
tg3_stat64_t rx_threshold_hit;

Expand All @@ -2639,7 +2638,12 @@ struct tg3_hw_stats {
tg3_stat64_t nic_avoided_irqs;
tg3_stat64_t nic_tx_threshold_hit;

u8 __reserved4[0xb00-0x9c0];
/* NOT a part of the hardware statistics block format.
* These stats are here as storage for tg3_periodic_fetch_stats().
*/
tg3_stat64_t mbuf_lwm_thresh_hit;

u8 __reserved4[0xb00-0x9c8];
};

/* 'mapping' is superfluous as the chip does not write into
Expand Down Expand Up @@ -2771,6 +2775,8 @@ struct tg3_ethtool_stats {
u64 nic_irqs;
u64 nic_avoided_irqs;
u64 nic_tx_threshold_hit;

u64 mbuf_lwm_thresh_hit;
};

struct tg3_rx_prodring_set {
Expand Down

0 comments on commit 4452d09

Please sign in to comment.