summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/myricom
diff options
context:
space:
mode:
authorEdward Cree <ecree@solarflare.com>2018-04-13 21:18:09 +0300
committerDavid S. Miller <davem@davemloft.net>2018-04-14 22:39:53 +0300
commitf993740ee05821307eca03d23d468895740450f8 (patch)
treeb44c9774d72109d8c8ec693b9e55dd6144eb6cc0 /drivers/net/ethernet/myricom
parenta7f80189e41c96c0c6210e9198a31859c91eb3e5 (diff)
downloadlinux-f993740ee05821307eca03d23d468895740450f8.tar.xz
sfc: limit ARFS workitems in flight per channel
A misconfigured system (e.g. with all interrupts affinitised to all CPUs) may produce a storm of ARFS steering events. With the existing sfc ARFS implementation, that could create a backlog of workitems that grinds the system to a halt. To prevent this, limit the number of workitems that may be in flight for a given SFC device to 8 (EFX_RPS_MAX_IN_FLIGHT), and return EBUSY from our ndo_rx_flow_steer method if the limit is reached. Given this limit, also store the workitems in an array of slots within the struct efx_nic, rather than dynamically allocating for each request. The limit should not negatively impact performance, because it is only likely to be hit in cases where ARFS will be ineffective anyway. Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/myricom')
0 files changed, 0 insertions, 0 deletions