https://bugs.linaro.org/show_bug.cgi?id=3201
Bug ID: 3201
Summary: Performance degradation due to no-copy packet
reference commits
Product: OpenDataPlane - linux- generic reference
Version: master
Hardware: Other
OS: Linux
Status: UNCONFIRMED
Severity: enhancement
Priority: ---
Component: Buffers & Packets
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
Packet reference patch set causes serious performance degradation on many
packet API functions. Also l2fwd application throughput dropped by about 6-10%.
Measurements were done in master, just before packet ref patch set (commit
bb0ca193f8c28036) and just after it (commit a1786671550c5f83).
L2fwd packet throughput with dpdk pktio, 10GE NICs
--------------------------------------------------
CPUs 1 2 4
direct -6.4% -5.4%
parallel -3.4% -5.6% -8.5%
atomic -2.3% -6.3% -10.8%
ordered -3.4% -6.1% -8.5%
L2fwd packet throughput with dpdk pktio (copy vs. zero-copy), 40GE NICs
-----------------------------------------------------------------------
zero-copy
Cores direct atomic direct atomic
1 -6.3 % -5.6 % -18.3 % -9.5 %
2 -6.1 % -6.9 % -9.2 % -12.3 %
4 -6.1 % -8.8 % -9.9 %
6 -4.5 % -8.1 % -7.3 %
8 -7.7 % -5.5 %
odp_bench_packet cycle counts
-----------------------------
64 128 256 512 1024 1518
bench_empty 0 % 0 % 0 % 0 % 0 % 0 %
bench_packet_alloc -46 % -47 % -46 % -46 % -46 % -40 %
bench_packet_alloc_multi -88 % -81 % -81 % -67 % -77 % -52 %
bench_packet_free -8 % -9 % -8 % -9 % -8 % -9 %
bench_packet_free_multi -80 % -80 % -81 % -81 % -79 % -36 %
bench_packet_alloc_free 0 % 1 % 1 % 1 % 0 % 0 %
bench_packet_alloc_free_multi -31 % -56 % -34 % -31 % -33 % -56 %
bench_packet_reset -29 % -30 % -30 % -31 % -31 % -30 %
bench_packet_from_event 16 % 18 % 18 % 16 % 16 % 16 %
bench_packet_to_event -2 % -2 % -2 % -2 % -2 % -2 %
bench_packet_head -59 % -68 % -70 % -69 % -65 % -66 %
bench_packet_buf_len -58 % -72 % -68 % -73 % -70 % -66 %
bench_packet_data -49 % -60 % -60 % -63 % -57 % -61 %
bench_packet_seg_len -56 % -62 % -62 % -62 % -62 % -61 %
bench_packet_len -100 % -103 % -100 % -97 % -100 % -97 %
bench_packet_headroom 0 % 0 % 0 % 100 % 0 % 0 %
bench_packet_tailroom 0 % 0 % 0 % 100 % 0 % 0 %
bench_packet_tail -58 % -64 % -61 % -50 % -64 % -81 %
bench_packet_offset -34 % -35 % -37 % -36 % -37 % -34 %
bench_packet_prefetch 0 % 0 % 0 % 0 % 0 % 0 %
bench_packet_push_head -41 % -50 % -47 % -47 % -50 % -48 %
bench_packet_pull_head -41 % -48 % -46 % -43 % -45 % -46 %
bench_packet_push_tail -40 % -45 % -44 % -46 % -39 % -47 %
bench_packet_pull_tail 77 % -39 % -37 % -38 % -40 % -39 %
bench_packet_extend_head -6 % -6 % -6 % -11 % -7 % -5 %
bench_packet_trunc_head -5 % 30 % -5 % -4 % -5 % -6 %
bench_packet_extend_tail -3 % -4 % -5 % 0 % 36 % -4 %
bench_packet_trunc_tail -6 % -7 % -6 % -6 % -6 % -7 %
bench_packet_add_data -3 % -2 % -1 % 0 % -9 % -13 %
bench_packet_rem_data -3 % -2 % 0 % -15 % 10 % 4 %
bench_packet_align -6 % -5 % -4 % -3 % 17 % 18 %
bench_packet_is_segmented -129 % -153 % -146 % -145 % -148 % -190 %
bench_packet_num_segs -210 % -232 % -150 % -223 % -234 % -232 %
bench_packet_first_seg 0 % 0 % 0 % 0 % 0 % 0 %
bench_packet_last_seg -293 % -326 % -315 % -277 % -305 % -1590 %
bench_packet_next_seg -76 % -95 % -90 % -85 % -36 % -90 %
bench_packet_seg_data -601 % -42 % -27 % -41 % -42 % -45 %
bench_packet_seg_data_len -39 % -49 % -46 % -46 % -46 % -50 %
bench_packet_concat -6 % -6 % -5 % -5 % -4 % -6 %
bench_packet_split -15 % -36 % -8 % -5 % 6 % -27 %
bench_packet_copy 10 % -16 % -3 % -16 % 7 % 1 %
bench_packet_copy_part -6 % -6 % -3 % -18 % -2 % -1 %
bench_packet_copy_to_mem 1 % -1 % 1 % -24 % 6 % -2 %
bench_packet_copy_from_mem -2 % 0 % -28 % 0 % -15 % 10 %
bench_packet_copy_from_pkt -10 % -5 % -3 % 22 % 1 % 13 %
bench_packet_copy_data -25 % -5 % -5 % -2 % 1 % -4 %
bench_packet_move_data -24 % -3 % -6 % 25 % -1 % 3 %
bench_packet_pool 2 % 4 % 2 % 3 % 3 % 2 %
bench_packet_input -71 % -73 % -73 % -76 % -71 % -67 %
bench_packet_input_index -32 % -28 % -30 % -30 % -30 % -30 %
bench_packet_user_ptr -5 % -4 % 6 % 14 % 4 % -10 %
bench_packet_user_ptr_set -2 % -2 % -2 % -2 % -2 % -2 %
bench_packet_user_area -6 % -6 % 5 % 7 % 4 % -10 %
bench_packet_user_area_size -8 % -8 % -9 % -8 % -8 % -8 %
bench_packet_l2_ptr -34 % -33 % -34 % -32 % -32 % -33 %
bench_packet_l2_offset -24 % -26 % -25 % -22 % -24 % -25 %
bench_packet_l2_offset_set -45 % -43 % -43 % -39 % -44 % -44 %
bench_packet_l3_ptr -34 % -37 % -37 % -34 % -35 % -35 %
bench_packet_l3_offset -47 % -51 % -50 % -45 % -47 % -48 %
bench_packet_l3_offset_set -33 % -26 % -32 % -57 % -33 % -34 %
bench_packet_l4_ptr -409 % -36 % -38 % -35 % -36 % -35 %
bench_packet_l4_offset -53 % -54 % -48 % -48 % -48 % -50 %
bench_packet_l4_offset_set -39 % -39 % 83 % -37 % -41 % -37 %
bench_packet_flow_hash -77 % -77 % -77 % -72 % -40 % -75 %
bench_packet_flow_hash_set -329 % -478 % -472 % -448 % -1175 % -467 %
bench_packet_ts -73 % -63 % -67 % -63 % -71 % -71 %
bench_packet_ts_set -439 % -461 % -450 % -428 % -445 % -452 %
bench_packet_ref_static 86 % 87 % 90 % 90 % 93 % 95 %
bench_packet_ref 53 % 58 % 62 % 60 % 72 % 71 %
bench_packet_ref_pkt 80 % 83 % 83 % 84 % 87 % 90 %
bench_packet_unshared_len -79 % -79 % -74 % -72 % -70 % -68 %
bench_packet_has_ref -298 % -298 % -305 % -296 % -293 % -277 %
--
You are receiving this mail because:
You are on the CC list for the bug.