]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC r313555:
authorhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 19 May 2017 12:56:18 +0000 (12:56 +0000)
committerhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 19 May 2017 12:56:18 +0000 (12:56 +0000)
commit5223d678b0658a3a1679b88e2a625baed789ebd2
tree7eb4715d2300b2f05fe61aef8fa8bd9c8e1afc48
parent62ababf1c2cef011d37e06bdc9e6b926912fa415
MFC r313555:
Flexible and asymmetric allocation of EQs and MSI-X vectors for PF/VFs.

Previously, the mlx4 driver queried the firmware in order to get the
number of supported EQs. Under SRIOV, since this was done before the
driver notified the firmware how many VFs it actually needs, the
firmware had to take into account a worst case scenario and always
allocated four EQs per VF, where one was used for events while the
others were used for completions. Now, when the firmware supports the
asymmetric allocation scheme, denoted by exposing num_sys_eqs > 0 (-->
MLX4_DEV_CAP_FLAG2_SYS_EQS), we use the QUERY_FUNC command to query
the firmware before enabling SRIOV. Thus we can get more EQs and MSI-X
vectors per function. Moreover, when running in the new
firmware/driver mode, the limitation that the number of EQs should be
a power of two is lifted.

Obtained from: Linux (dual BSD/GPLv2 licensed)
Submitted by: Dexuan Cui @ microsoft . com
Differential Revision: https://reviews.freebsd.org/D8867
Sponsored by: Mellanox Technologies

git-svn-id: svn://svn.freebsd.org/base/stable/9@318537 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/ofed/drivers/net/mlx4/eq.c
sys/ofed/drivers/net/mlx4/fw.c
sys/ofed/drivers/net/mlx4/fw.h
sys/ofed/drivers/net/mlx4/main.c
sys/ofed/drivers/net/mlx4/profile.c
sys/ofed/include/linux/mlx4/device.h