• Y
    IB/rxe: Cache dst in QP instead of getting it for each send · 4ed6ad1e
    yonatanc 提交于
    In RC QP there is no need to resolve the outgoing interface
    for each packet, as this does not change during QP life cycle.
    
    Instead cache the interface on the socket and use that one.
    This improves performance by 12% by sparing redundant
    calls to rxe_find_route.
    
    ib_send_bw -d rxe0  -x 1 -n 9000 -e  -s $((1024 * 1024 )) -l 100
    
    ----------------------------------------------------------------------------------------
    |        | bytes   | iterations | BW peak[MB/sec] | BW average[MB/sec] | MsgRate[Mpps] |
    ----------------------------------------------------------------------------------------
    | before | 1048576 | 9000       | inf             | 551.21             | 0.000551      |
    | after  | 1048576 | 9000       | inf             | 615.54             | 0.000616      |
    ----------------------------------------------------------------------------------------
    
    Fixes: 8700e3e7 ("Soft RoCE driver")
    Signed-off-by: NYonatan Cohen <yonatanc@mellanox.com>
    Signed-off-by: NLeon Romanovsky <leon@kernel.org>
    Signed-off-by: NDoug Ledford <dledford@redhat.com>
    4ed6ad1e
rxe_qp.c 19.9 KB