MatiasElo
released this
19 Sep 05:33
·
17 commits
to master
since this release
OpenDataPlane (1.45.1.0)
Backward compatible API changes
Atomic
- Add new
odp_atomic_fetch_min_u32()
andodp_atomic_fetch_min_u64()
functions for fetching and updating minimum values of atomicuint32_t
oruint64_t
variables. - Add new
odp_atomic_fetch_max_u32()
andodp_atomic_fetch_max_u64()
functions for fetching and updating maximum values of atomicuint32_t
oruint64_t
variables. - Add functions for atomically setting and clearing bits in 32-bit atomic variables:
odp_atomic_bit_set_u32()
,odp_atomic_bit_fetch_set_u32()
,odp_atomic_bit_clr_u32()
,odp_atomic_bit_fetch_clr_u32()
,odp_atomic_bit_set_rel_u32()
,odp_atomic_bit_clr_rel_u32()
- Add functions for atomically setting and clearing bits in 64-bit atomic variables:
odp_atomic_bit_set_u64()
,odp_atomic_bit_fetch_set_u64()
,odp_atomic_bit_clr_u64()
,odp_atomic_bit_fetch_clr_u64()
,odp_atomic_bit_set_rel_u64()
,odp_atomic_bit_clr_rel_u64()
- Add flags for the new atomic functions into
odp_atomic_op_t
.
CPU
- Add instruction prefetch function
odp_prefetch_l1i()
.
DMA
- Add debug function
odp_dma_transfer_id_to_u64()
for getting a printable value for a DMA transfer identifier.
Init
- Add debug function
odp_instance_to_u64()
for getting a printable value for an ODP instance handle.
ML
- Add functions for supporting quantization of
int16_t
anduint16_t
data types:odp_ml_fp32_to_uint16()
,odp_ml_fp32_from_uint16()
,odp_ml_fp32_to_int16()
,odp_ml_fp32_from_int16()
Packet
- Add debug function
odp_packet_tx_compl_to_u64()
for getting a printable value for a Tx completion handle. - Clarify
odp_packet_reset_max_len()
documentation to state that the returned length may be less than the current packet data length if data length has been increased by utilizing head- or tailroom.
Scheduler
- Add debug function
odp_schedule_group_to_u64()
for getting a printable value for a schedule group handle.
Std
- Clarify
odp_bool_t
documentation by stating how the data type can by used with standard C booleans and what is considered true/false. - Add a field of type
__uint128_t
in the union inodp_u128_t
when the type is available, so that users that use__uint128_t
or a compatible type do not need to type pun.
ABI changes
- Change ABI type for
odp_bool_t
fromint
tobool
to comply with the clarified API documentation.
Implementation
- Add new config file option
system:cpu_id_static
for selecting whether the implementation reads CPU identifier value from OS during everyodp_cpu_id()
call or only once during thread initialization (default). - Enable the
-fno-strict-aliasing
compiler option. Some sections of code in ODP deliberately access the same data via pointers to different types, which is undefined behavior in C. The-fno-strict-aliasing
option prevents the compiler from making assumptions about aliasing in these instances.
Example Applications
ml_run
- Add new example application, which loads a given ML model file, runs inference using a given input file and compares the output to a given reference file.
Performance Tests
- Add the possibility to export test results into a .csv file by using
--test-common-export
option orTEST_COMMON_EXPORT
environment variable. Exporting results is supported by the following applications:atomic_perf
,bench_buffer
,bench_misc
,bench_timer
,bench_packet
,bench_pktio_sp
,dma_perf
,lock_perf
,pool_perf
,sched_latency
,sched_perf
,stash_perf
,timer_accuracy
bench_packet
- Add tests for new
odp_packet_reset_meta()
andodp_packet_reset_max_len()
functions. - Add tests for event API fast path functions on packets.
icache_perf
- Add new performance test application to measure CPU performance when application code size exceeds L1 instruction cache size.
packet_gen
- Add new
-U
option to define custom L3 headers. - Add new
none
selection to the L4 protocol -N option.