git.kernel.org

bnxt_en: Allow the user to set ethtool stats-block-usecs to 0. - kernel/git/torvalds/linux.git - Linux kernel source tree

  • ️Mon Jul 24 2017

bnxt_en: Allow the user to set ethtool stats-block-usecs to 0.

For debugging purpose, it is sometimes useful to disable periodic port statistics updates, so that the firmware logs will not be filled with statistics update messages. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>

@@ -6843,7 +6843,8 @@ static void bnxt_timer(unsigned long data)

if (atomic_read(&bp->intr_sem) != 0)

goto bnxt_restart_timer;

- if (bp->link_info.link_up && (bp->flags & BNXT_FLAG_PORT_STATS)) {

+ if (bp->link_info.link_up && (bp->flags & BNXT_FLAG_PORT_STATS) &&

+ bp->stats_coal_ticks) {

set_bit(BNXT_PERIODIC_STATS_SP_EVENT, &bp->sp_event);

schedule_work(&bp->sp_task);

}

@@ -86,9 +86,11 @@ static int bnxt_set_coalesce(struct net_device *dev,

if (bp->stats_coal_ticks != coal->stats_block_coalesce_usecs) {

u32 stats_ticks = coal->stats_block_coalesce_usecs;

- stats_ticks = clamp_t(u32, stats_ticks,

- BNXT_MIN_STATS_COAL_TICKS,

- BNXT_MAX_STATS_COAL_TICKS);

+ /* Allow 0, which means disable. */

+ if (stats_ticks)

+ stats_ticks = clamp_t(u32, stats_ticks,

+ BNXT_MIN_STATS_COAL_TICKS,

+ BNXT_MAX_STATS_COAL_TICKS);

stats_ticks = rounddown(stats_ticks, BNXT_MIN_STATS_COAL_TICKS);

bp->stats_coal_ticks = stats_ticks;

update_stats = true;