linux/drivers/infiniband/sw/rxe
yonatanc cee2688e3c IB/rxe: Offload CRC calculation when possible
Use CPU ability to perform CRC calculations, by
replacing direct calls to crc32_le() with crypto_shash_updata().

The overall performance gain measured with ib_send_bw tool is 10% and it
was tested on "Intel CPU ES-2660 v2 @ 2.20Ghz" CPU.

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] |
---------------------------------------------------------------------------------------------
| crc32_le    | 1048576 | 9000       | inf             | 497.60             | 0.000498      |
| CRC offload | 1048576 | 9000       | inf             | 546.70             | 0.000547      |
---------------------------------------------------------------------------------------------

Fixes: 8700e3e7c4 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen <yonatanc@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-04-21 10:45:02 -04:00
..
Kconfig IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
Makefile IB/rxe: Add port protocol stats 2017-04-21 10:43:28 -04:00
rxe_av.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_comp.c IB/rxe: Add port protocol stats 2017-04-21 10:43:28 -04:00
rxe_cq.c IB/rxe: Let the compiler check the type of the cleanup functions 2017-01-10 16:52:47 -05:00
rxe_hdr.h IB/rxe: Enable type checking on SKB_TO_PKT() and PKT_TO_SKB() arguments 2017-01-10 16:52:47 -05:00
rxe_hw_counters.c IB/rxe: Add port protocol stats 2017-04-21 10:43:28 -04:00
rxe_hw_counters.h IB/rxe: Add port protocol stats 2017-04-21 10:43:28 -04:00
rxe_icrc.c IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
rxe_loc.h IB/rxe: Add port protocol stats 2017-04-21 10:43:28 -04:00
rxe_mcast.c IB/rxe: Remove a pointless indirection layer 2017-01-10 16:52:47 -05:00
rxe_mmap.c infiniband: Fix alignment of mmap cookies to support VIPT caching 2017-03-24 16:50:51 -04:00
rxe_mr.c IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
rxe_net.c First set of updates for 4.11 kernel merge window 2017-02-23 08:27:57 -08:00
rxe_net.h IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_opcode.c
rxe_opcode.h
rxe_param.h IB/rxe: Increase max number of completions to 32k 2016-12-13 13:33:24 -05:00
rxe_pool.c IB/rxe: Add a runtime check in alloc_index() 2017-01-10 16:52:47 -05:00
rxe_pool.h IB/rxe: Let the compiler check the type of the cleanup functions 2017-01-10 16:52:47 -05:00
rxe_qp.c IB/rxe: Avoid accessing timers for non RC QPs 2017-04-21 10:43:28 -04:00
rxe_queue.c IB/rxe: Clear queue buffer when modifying QP to reset 2016-11-16 20:03:44 -05:00
rxe_queue.h IB/rxe: Clear queue buffer when modifying QP to reset 2016-11-16 20:03:44 -05:00
rxe_recv.c IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
rxe_req.c IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
rxe_resp.c IB/rxe: Add port protocol stats 2017-04-21 10:43:28 -04:00
rxe_srq.c IB/rxe: Remove unneeded cast in rxe_srq_from_attr() 2016-12-12 16:31:45 -05:00
rxe_sysfs.c IB/rxe: improved debug prints & code cleanup 2016-10-06 13:50:04 -04:00
rxe_task.c IB/rxe: Wait for tasklets to finish before tearing down QP 2016-12-12 16:31:45 -05:00
rxe_task.h IB/rxe: Wait for tasklets to finish before tearing down QP 2016-12-12 16:31:45 -05:00
rxe_verbs.c IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
rxe_verbs.h IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
rxe.c IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00
rxe.h IB/rxe: Offload CRC calculation when possible 2017-04-21 10:45:02 -04:00