net: bcmgenet: Add software counters to track reallocations
When inserting the TSB, keep track of how many times we had to do it and if there was a failure in doing so, this helps profile the driver for possibly incorrect headroom settings. Signed-off-by: Doug Berger <opendmb@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
e3fa85883d
Коммит
f1af17c0b7
|
@ -861,6 +861,9 @@ static const struct bcmgenet_stats bcmgenet_gstrings_stats[] = {
|
|||
STAT_GENET_SOFT_MIB("alloc_rx_buff_failed", mib.alloc_rx_buff_failed),
|
||||
STAT_GENET_SOFT_MIB("rx_dma_failed", mib.rx_dma_failed),
|
||||
STAT_GENET_SOFT_MIB("tx_dma_failed", mib.tx_dma_failed),
|
||||
STAT_GENET_SOFT_MIB("tx_realloc_tsb", mib.tx_realloc_tsb),
|
||||
STAT_GENET_SOFT_MIB("tx_realloc_tsb_failed",
|
||||
mib.tx_realloc_tsb_failed),
|
||||
/* Per TX queues */
|
||||
STAT_GENET_Q(0),
|
||||
STAT_GENET_Q(1),
|
||||
|
@ -1487,6 +1490,7 @@ static void bcmgenet_tx_reclaim_all(struct net_device *dev)
|
|||
static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct bcmgenet_priv *priv = netdev_priv(dev);
|
||||
struct status_64 *status = NULL;
|
||||
struct sk_buff *new_skb;
|
||||
u16 offset;
|
||||
|
@ -1501,11 +1505,13 @@ static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev,
|
|||
new_skb = skb_realloc_headroom(skb, sizeof(*status));
|
||||
if (!new_skb) {
|
||||
dev_kfree_skb_any(skb);
|
||||
priv->mib.tx_realloc_tsb_failed++;
|
||||
dev->stats.tx_dropped++;
|
||||
return NULL;
|
||||
}
|
||||
dev_consume_skb_any(skb);
|
||||
skb = new_skb;
|
||||
priv->mib.tx_realloc_tsb++;
|
||||
}
|
||||
|
||||
skb_push(skb, sizeof(*status));
|
||||
|
|
|
@ -144,6 +144,8 @@ struct bcmgenet_mib_counters {
|
|||
u32 alloc_rx_buff_failed;
|
||||
u32 rx_dma_failed;
|
||||
u32 tx_dma_failed;
|
||||
u32 tx_realloc_tsb;
|
||||
u32 tx_realloc_tsb_failed;
|
||||
};
|
||||
|
||||
#define UMAC_HD_BKP_CTRL 0x004
|
||||
|
|
Загрузка…
Ссылка в новой задаче