ixl: report whether device received pause frames

From Jake:
When updating the device statistics, report whether or not we have
received any pause frames to the iflib stack. This allows the iflib
stack to avoid generating a Tx hang message while the device is paused.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>

Submitted by:	Jacob Keller <jacob.e.keller@intel.com>
Reviewed by:	gallatin@
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D21870
This commit is contained in:
Eric Joyner 2019-10-16 17:19:17 +00:00
parent e37d3dc11c
commit f17e0a71cd

View File

@ -2592,6 +2592,7 @@ ixl_update_stats_counters(struct ixl_pf *pf)
struct i40e_hw *hw = &pf->hw;
struct ixl_vsi *vsi = &pf->vsi;
struct ixl_vf *vf;
u64 prev_link_xoff_rx = pf->stats.link_xoff_rx;
struct i40e_hw_port_stats *nsd = &pf->stats;
struct i40e_hw_port_stats *osd = &pf->stats_offsets;
@ -2677,6 +2678,13 @@ ixl_update_stats_counters(struct ixl_pf *pf)
pf->stat_offsets_loaded,
&osd->link_xoff_tx, &nsd->link_xoff_tx);
/*
* For watchdog management we need to know if we have been paused
* during the last interval, so capture that here.
*/
if (pf->stats.link_xoff_rx != prev_link_xoff_rx)
adapter->shared->isc_pause_frames = 1;
/* Packet size stats rx */
ixl_stat_update48(hw, I40E_GLPRT_PRC64H(hw->port),
I40E_GLPRT_PRC64L(hw->port),