• Eran Ben Elisha's avatar
    net/mlx5: Hold pages RB tree per VF · d6945242
    Eran Ben Elisha authored
    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: default avatarEran Ben Elisha <eranbe@mellanox.com>
    Reviewed-by: default avatarMark Bloch <markb@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    d6945242
pagealloc.c 18.1 KB