lkml.org 
[lkml]   [2011]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net-next v6 8/9] forcedeth: account for dropped RX frames
    Date
    This adds code to update the stats counter for dropped RX frames.



    Signed-off-by: David Decotigny <david.decotigny@google.com>
    ---
    drivers/net/ethernet/nvidia/forcedeth.c | 14 ++++++++++++--
    1 files changed, 12 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c
    index 427c9c1..9bf993d 100644
    --- a/drivers/net/ethernet/nvidia/forcedeth.c
    +++ b/drivers/net/ethernet/nvidia/forcedeth.c
    @@ -815,6 +815,7 @@ struct fe_priv {
    u64 stat_rx_packets;
    u64 stat_rx_bytes; /* not always available in HW */
    u64 stat_rx_missed_errors;
    + u64 stat_rx_dropped;

    /* media detection workaround.
    * Locking: Within irq hander or disable_irq+spin_lock(&np->lock);
    @@ -1758,6 +1759,7 @@ nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage)
    syncp_start = u64_stats_fetch_begin(&np->swstats_rx_syncp);
    storage->rx_packets = np->stat_rx_packets;
    storage->rx_bytes = np->stat_rx_bytes;
    + storage->rx_dropped = np->stat_rx_dropped;
    storage->rx_missed_errors = np->stat_rx_missed_errors;
    } while (u64_stats_fetch_retry(&np->swstats_rx_syncp, syncp_start));

    @@ -1828,8 +1830,12 @@ static int nv_alloc_rx(struct net_device *dev)
    np->put_rx.orig = np->first_rx.orig;
    if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx))
    np->put_rx_ctx = np->first_rx_ctx;
    - } else
    + } else {
    + u64_stats_update_begin(&np->swstats_rx_syncp);
    + np->stat_rx_dropped++;
    + u64_stats_update_end(&np->swstats_rx_syncp);
    return 1;
    + }
    }
    return 0;
    }
    @@ -1860,8 +1866,12 @@ static int nv_alloc_rx_optimized(struct net_device *dev)
    np->put_rx.ex = np->first_rx.ex;
    if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx))
    np->put_rx_ctx = np->first_rx_ctx;
    - } else
    + } else {
    + u64_stats_update_begin(&np->swstats_rx_syncp);
    + np->stat_rx_dropped++;
    + u64_stats_update_end(&np->swstats_rx_syncp);
    return 1;
    + }
    }
    return 0;
    }
    --
    1.7.3.1


    \
     
     \ /
      Last update: 2011-11-16 23:19    [W:0.043 / U:59.636 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site