]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r300277:
authorhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 3 Jun 2016 09:03:44 +0000 (09:03 +0000)
committerhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 3 Jun 2016 09:03:44 +0000 (09:03 +0000)
commit8ada0b9b08f9412c289e409b2ca3f54a42ae0b06
tree46c600c89e55a0fdcd2196e8a9cb66693149b3e6
parent7e501841d5aec84bf04def6e55f7d0bb8204faed
MFC r300277:
Implement TX completion event interleaving.

This patch implements a sysctl which allows setting a factor, N, for
how many work queue elements can be generated before requiring a
completion event. When a completion event happens the code simulates N
completion events instead of only one. When draining a transmit queue,
N-1 NOPs are transmitted at most, to force generation of the final
completion event.  Further a timer is running every HZ ticks to flush
any remaining data off the transmit queue when the tx_completion_fact
> 1.

The goal of this feature is to reduce the PCI bandwidth needed when
transmitting data.

Sponsored by: Mellanox Technologies
Tested by: Netflix

git-svn-id: svn://svn.freebsd.org/base/stable/10@301258 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/mlx5/mlx5_en/en.h
sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c
sys/dev/mlx5/mlx5_en/mlx5_en_main.c
sys/dev/mlx5/mlx5_en/mlx5_en_tx.c