]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r313555:
authorhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 19 May 2017 12:53:50 +0000 (12:53 +0000)
committerhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 19 May 2017 12:53:50 +0000 (12:53 +0000)
commitd52e7e4d9ad96d71e4361ffaf79d830c84963abd
treef99a06a991c1d35d2bc1947ae5b9a3db38e334ef
parent8c11aac4481a5659813d05587f0758acc4d6aadf
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/10@318536 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