aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca2.yaml
blob: 45d1ba46c702366307f7640116a61c214e339e93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
64b-2t1c-eth-l2patch: 2
64b-2t1c-eth-l2xcbase-eth-2memif-1dcr: 3
64b-2t1c-avf-eth-l2patch: 2
64b-2t1c-avf-eth-l2xcbase: 2
64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr: 3
64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 4
64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 3
64b-2t1c-dot1q-l2xcbase: 5
64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4: 4
64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 4
64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 4
64b-2t1c-ethip4-ip4base-eth-2memif-1dcr: 3
64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 4
64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm: 4
64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm: 4
64b-2t1c-avf-dot1q-l2bdbasemaclrn: 1
64b-2t1c-dot1q-ip4base: 1
64b-2t1c-ethip4-ip4base: 1
64b-2t1c-ethip4udp-ip4base-iacl50sf-10kflows: 1
64b-2t1c-ethip4udp-ip4base-iacl50sl-10kflows: 1
64b-2t1c-avf-dot1q-l2bdbasemaclrn-gbp: 1
64b-2t1c-ethip4-ip4scale200k: 1
64b-2t1c-ethip4-ip4scale2m: 1
64b-2t1c-avf-dot1q-ip4base: 1
64b-2t1c-avf-ethip4-ip4base: 1
64b-2t1c-avf-ethip4-ip4scale200k: 1
64b-2t1c-avf-ethip4-ip4scale20k: 1
64b-2t1c-avf-ethip4-ip4scale2m: 1
64b-2t1c-ethip4udp-ip4base-nat44: 1
footnote: "[1] Impact of Skx ucode upgrade from 0x2000043 to 0x2000065 in combination with SuperMicro motherboards/firmware and kernel updates, subject to the ongoing detailed RCA investigation with Intel NPG.\n[2] Applied fix of FVL NIC firmware 6.0.1 for increasing TRex Mpps rate from 27 Mpps to 37 Mpps, [CSIT-1503], [TRex-519].\n[3] Applied VPP PAPI fix to enable memif zero-copy, [CSIT-1592], [VPP-1764].\n[4] To-Be-Investigated, vhost-user avg PDR throughput rate has higher stdev than before.\n[5] To-Be-Investigated, dot1q-l2xc with DPDK FVL.\n"
an>v) { return _vec_find (v)->len; } #define _vec_len(v) __vec_len ((void *) (v)) #define vec_len(v) ((v) ? _vec_len(v) : 0) u32 vec_len_not_inline (void *v); /** \brief Number of data bytes in vector. */ #define vec_bytes(v) (vec_len (v) * sizeof (v[0])) /** * Return size of memory allocated for the vector * * @param v vector * @return memory size allocated for the vector */ uword vec_mem_size (void *v); /** * Number of elements that can fit into generic vector * * @param v vector * @param b extra header bytes * @return number of elements that can fit into vector */ always_inline uword vec_max_bytes (void *v) { return v ? vec_mem_size (v) - vec_get_header_size (v) : 0; } always_inline uword _vec_max_len (void *v, uword elt_sz) { return vec_max_bytes (v) / elt_sz; } #define vec_max_len(v) _vec_max_len (v, _vec_elt_sz (v)) static_always_inline void _vec_set_grow_elts (void *v, uword n_elts) { uword max = pow2_mask (BITS (_vec_find (0)->grow_elts)); if (PREDICT_FALSE (n_elts > max)) n_elts = max; _vec_find (v)->grow_elts = n_elts; } always_inline void _vec_set_len (void *v, uword len, uword elt_sz) { ASSERT (v); ASSERT (len <= _vec_max_len (v, elt_sz)); uword old_len = _vec_len (v); uword grow_elts = _vec_find (v)->grow_elts; if (len > old_len) clib_mem_unpoison (v + old_len * elt_sz, (len - old_len) * elt_sz); else if (len > old_len) clib_mem_poison (v + len * elt_sz, (old_len - len) * elt_sz); _vec_set_grow_elts (v, old_len + grow_elts - len); _vec_find (v)->len = len; } #define vec_set_len(v, l) _vec_set_len ((void *) v, l, _vec_elt_sz (v)) #define vec_inc_len(v, l) vec_set_len (v, _vec_len (v) + (l)) #define vec_dec_len(v, l) vec_set_len (v, _vec_len (v) - (l)) /** \brief Reset vector length to zero NULL-pointer tolerant */ #define vec_reset_length(v) do { if (v) vec_set_len (v, 0); } while (0) /** \brief End (last data address) of vector. */ #define vec_end(v) ((v) + vec_len (v)) /** \brief True if given pointer is within given vector. */ #define vec_is_member(v,e) ((e) >= (v) && (e) < vec_end (v)) /** \brief Get vector value at index i checking that i is in bounds. */ #define vec_elt_at_index(v,i) \ ({ \ ASSERT ((i) < vec_len (v)); \ (v) + (i); \ }) /** \brief Get vector value at index i */ #define vec_elt(v,i) (vec_elt_at_index(v,i))[0] /** \brief Vector iterator */ #define vec_foreach(var,vec) for (var = (vec); var < vec_end (vec); var++) /** \brief Vector iterator (reverse) */ #define vec_foreach_backwards(var, vec) \ if (vec) \ for (var = vec_end (vec) - 1; var >= (vec); var--) /** \brief Iterate over vector indices. */ #define vec_foreach_index(var,v) for ((var) = 0; (var) < vec_len (v); (var)++) /** \brief Iterate over vector indices (reverse). */ #define vec_foreach_index_backwards(var, v) \ if (v) \ for ((var) = vec_len ((v)) - 1; (var) >= 0; (var)--) #endif /* included_clib_vec_bootstrap_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */