aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core/uverbs_main.c
diff options
context:
space:
mode:
authorMichael Guralnik <michaelgur@mellanox.com>2019-06-10 15:21:24 +0300
committerJason Gunthorpe <jgg@mellanox.com>2019-10-31 15:52:51 -0300
commit11f552e21755cb6f804572243a1502b6bbd008dd (patch)
treec3197b0467539fb05355f0a0fdb0e785babad3e3 /drivers/infiniband/core/uverbs_main.c
parentRDMA/mlx5: Return proper error value (diff)
downloadlinux-dev-11f552e21755cb6f804572243a1502b6bbd008dd.tar.xz
linux-dev-11f552e21755cb6f804572243a1502b6bbd008dd.zip
IB/mlx5: Test write combining support
Linux can run in all sorts of physical machines and VMs where write combining may or may not be supported. Currently there is no way to reliably tell if the system supports WC, or not. The driver uses WC to optimize posting work to the HCA, and getting this wrong in either direction can cause a significant performance loss. Add a test in mlx5_ib initialization process to test whether write-combining is supported on the machine. The test will run as part of the enable_driver callback to ensure that the test runs after the device is setup and can create and modify the QP needed, but runs before the device is exposed to the users. The test opens UD QP and posts NOP WQEs, the WQE written to the BlueFlame is different from the WQE in memory, requesting CQE only on the BlueFlame WQE. By checking whether we received a completion on one of these WQEs we can know if BlueFlame succeeded and this write-combining must be supported. Change reporting of BlueFlame support to be dependent on write-combining support instead of the FW's guess as to what the machine can do. Link: https://lore.kernel.org/r/20191027062234.10993-1-leon@kernel.org Signed-off-by: Michael Guralnik <michaelgur@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/core/uverbs_main.c')
0 files changed, 0 insertions, 0 deletions