linux-stable/include/linux/mlx5
Eran Ben Elisha d6945242f4 net/mlx5: Hold pages RB tree per VF
Per page request event, FW request to allocated or release pages for a
single function. Driver maintains FW pages object per function, so there
is no need to hold one global page data-base. Instead, have a page
data-base per function, which will improve performance release flow in all
cases, especially for "release all pages".

As the range of function IDs is large and not sequential, use xarray to
store a per function ID page data-base, where the function ID is the key.

Upon first allocation of a page to a function ID, create the page
data-base per function. This data-base will be released only at pagealloc
mechanism cleanup.

NIC: ConnectX-4 Lx
CPU: Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
Test case: 32 VFs, measure release pages on one VF as part of FLR
Before: 0.021 Sec
After:  0.014 Sec

The improvement depends on amount of VFs and memory utilization
by them. Time measurements above were taken from idle system.

Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2020-07-28 02:37:26 -07:00
..
accel.h net/mlx5: Accel, Add core IPsec support for the Connect-X family 2020-07-16 16:36:42 -07:00
cq.h net/mlx5: Avoid RDMA file inclusion in core driver 2020-06-27 13:50:46 -07:00
device.h net/mlx5: kTLS, Improve TLS params layout structures 2020-06-27 13:50:46 -07:00
doorbell.h
driver.h net/mlx5: Hold pages RB tree per VF 2020-07-28 02:37:26 -07:00
eq.h
eswitch.h net/mlx5: E-Switch, Enable reg c1 loopback when possible 2020-03-12 15:00:38 -07:00
fs.h net/mlx5: Add IPsec related Flow steering entry's fields 2020-07-16 16:36:46 -07:00
fs_helpers.h
mlx5_ifc.h net/mlx5: Add IPsec related Flow steering entry's fields 2020-07-16 16:36:46 -07:00
mlx5_ifc_fpga.h net/mlx5: fix spelling mistake "reserverd" -> "reserved" 2020-02-18 15:44:07 +02:00
port.h net/mlx5: Added support for 100Gbps per lane link modes 2020-07-08 15:30:42 -07:00
qp.h net/mlx5: kTLS, Improve TLS params layout structures 2020-06-27 13:50:46 -07:00
rsc_dump.h net/mlx5: Add support in query QP, CQ and MKEY segments 2020-06-23 17:26:10 +03:00
transobj.h net/mlx5: Update transobj.c new cmd interface 2020-04-23 21:42:16 +03:00
vport.h net/mlx5: Constify mac address pointer 2020-06-22 15:29:19 -07:00