diff options
| author | Aleksandr Loktionov <[email protected]> | 2025-01-06 22:19:20 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-01-08 02:16:02 +0000 |
| commit | 07af482e646539d3cc12bc85040fe02f39ae3761 (patch) | |
| tree | d0c2e5f065f9d96c55cd83b289ecf0c1211eedc5 /drivers/net/ethernet/intel/i40e/i40e_debugfs.c | |
| parent | ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp() (diff) | |
| download | kernel-07af482e646539d3cc12bc85040fe02f39ae3761.tar.gz kernel-07af482e646539d3cc12bc85040fe02f39ae3761.zip | |
i40e: add ability to reset VF for Tx and Rx MDD events
Implement "mdd-auto-reset-vf" priv-flag to handle Tx and Rx MDD events for VFs.
This flag is also used in other network adapters like ICE.
Usage:
- "on" - The problematic VF will be automatically reset
if a malformed descriptor is detected.
- "off" - The problematic VF will be disabled.
In cases where a VF sends malformed packets classified as malicious, it can
cause the Tx queue to freeze, rendering it unusable for several minutes. When
an MDD event occurs, this new implementation allows for a graceful VF reset to
quickly restore operational state.
Currently, VF queues are disabled if an MDD event occurs. This patch adds the
ability to reset the VF if a Tx or Rx MDD event occurs. It also includes MDD
event logging throttling to avoid dmesg pollution and unifies the format of
Tx and Rx MDD messages.
Note: Standard message rate limiting functions like dev_info_ratelimited()
do not meet our requirements. Custom rate limiting is implemented,
please see the code for details.
Co-developed-by: Jan Sokolowski <[email protected]>
Signed-off-by: Jan Sokolowski <[email protected]>
Co-developed-by: Padraig J Connolly <[email protected]>
Signed-off-by: Padraig J Connolly <[email protected]>
Signed-off-by: Aleksandr Loktionov <[email protected]>
Reviewed-by: Michal Schmidt <[email protected]>
Tested-by: Rafal Romanowski <[email protected]>
Signed-off-by: Tony Nguyen <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/i40e/i40e_debugfs.c')
| -rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c index 208c2f0857b6..6cd9da662ae1 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c @@ -722,7 +722,7 @@ static void i40e_dbg_dump_vf(struct i40e_pf *pf, int vf_id) dev_info(&pf->pdev->dev, "vf %2d: VSI id=%d, seid=%d, qps=%d\n", vf_id, vf->lan_vsi_id, vsi->seid, vf->num_queue_pairs); dev_info(&pf->pdev->dev, " num MDD=%lld\n", - vf->num_mdd_events); + vf->mdd_tx_events.count + vf->mdd_rx_events.count); } else { dev_info(&pf->pdev->dev, "invalid VF id %d\n", vf_id); } |
