[PATCH v1] Merge ODP linux-generic v1.49.0.0#258
Open
MatiasElo wants to merge 160 commits intoOpenDataPlane:masterfrom
Open
[PATCH v1] Merge ODP linux-generic v1.49.0.0#258MatiasElo wants to merge 160 commits intoOpenDataPlane:masterfrom
MatiasElo wants to merge 160 commits intoOpenDataPlane:masterfrom
Conversation
Fix MTU related error message. Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
With _odp_strcpy() function array-bounds and stringop-overflow pragmas are no longer required. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Validate thread mask passed by user to odp_schedule_group_create() and odp_schedule_group_create_2(). Fixes out-of-bounds access warning from Coverity. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Allocate large tables from SHM instead of stack memory. This fixes stack_use warnings from Coverity. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Pass LSO profile parameters as a pointer to avoid pass_by_value warning from Coverity. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Pass pktio capabilities as a pointer to avoid pass_by_value warning from Coverity. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Check sscanf() return value to avoid checked_return warning from Coverity. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Initialize test data arrays using array initialization syntax instead of constant strings. This silences warnings about dropped terminating null characters with GCC-15. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Check that the 'num' parameter of odp_cunit_thread_join(num) is positive and not larger than ODP_THREAD_MAX_NUM. This also gets rid of a bogus warning from LTO buils using GCC-15. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Initialize the 'tail' variable that is supposed to get written by odp_packet_extend_tail() and odp_packet_trunc_tail(). If the functions (which are being tested) do not work as intended, 'tail' may not be initialized at the later CU_ASSERT(tail != NULL), likely causing the CU_ASSERT not fail. This change can also get rid of bogus maybe- uninitialized warnings even when the ODP functions work correctly. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Fix compilation with Clang on x86 when the target architecture supports RDRAND. ODP implementation uses low level GCC specific compiler builtin functions that are not available with Clang. Clang does support the higher level intrinsics like _rdrand64_step() but this commit does not switch to use them but simply falls back to the generic code when Clang is being used. Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
New option -W/--wait_ns to wait a number of nsecs between events being dequeued and enqueued. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
New option -M/--memcpy to perform x bytes memcpy between events being dequeued and enqueued. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Flush stdout and stderr just before fork so that buffered data does not end up in the child process in addition to the parent process and then get output twice. The lack of flushing caused the printouts made by _odp_system_info_init(), which is run before forking fdserver, getting cloned to the fdserver process and written out when fdserver was terminated at odp_term_global(). Sometimes this screwed up the output enough to make CI scripts that parse output unhappy. Using fork() without immediate exec() in a library used by multithreaded programs is highly fragile for multiple reasons. This commit is not a real fix for that but just a bandaid to fix the stdio buffering problem (with the assumption that there are no other application threads outputting to stdio simultaneously). Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
- Add common pktio test functions for ODP tests as a new header file. - Move functions for link info printing and link status check + wait from odp_packet_gen.c to newly created pktio_common.h to allow use in other tests - Call these newly moved functions from odp_packet_gen.c - Pktio link info is now always printed in odp_packet_gen.c Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Implement --wait_link option to allow the test to wait for the links to be up before proceeding with the test. Pktio link info is now always printed. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Implement --wait_link option to allow the test to wait for the links to be up before proceeding with the test. Pktio link info is now always printed. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Implement --wait_link option to allow the test to wait for the links to be up before proceeding with the test. Pktio link info is now always printed. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Add --wait_link 10 to allow some wait time for the link to be up before killing the test. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Add option --schedule_prefetch to allow events to be prefetched. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add option --cache_stash to enable cache stasing. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Replace the fixed 10 ms schedule wait with 4 * period_ns so the scheduler has enough time to deliver timeout events when the timer period is close to the wait time. Previously, leftover timeouts could remain in completion queues and cause queue_destroy() to fail. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Add test for checking that odp_ml_compl_t events can be freed with odp_event_free(). Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Added a burst mode -b/--burst <num> where events are enqueued and scheduled in bursts with odp_queue_enq_multi() and odp_schedule_multi(). Latency is measured and reported over whole bursts in burst mode. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
odp_cunit_thread_create() used to claim return value to be 0 on success. Actually returns number of threads created on success. This has now been corrected. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add new validation test for verifying scheduling group functionality. Each worker has its own schedule group and scheduled queue. Source queue of scheduled events is verified to be from the workers' private schedule group. Signed-off-by: Ray Sointula <ray.sointula@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add possibility to measure execution times also in cycles in addition to nanoseconds. This makes coexistence of basic bench and tm suites less cumbersome. Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add new option to choose measurement unit of benchmarked latencies. This streamlines options with other microbenchmark testers; by default, latencies are now measured in cycles instead of nanoseconds. Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Invert tm suite test function return value logic to match basic bench suite logic. This makes coexistence of the basic bench and tm suites less cumbersome. Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Add new option to control measurement mode. Two modes are provided, one for throughput and one for latency. Throughput mode keeps track of average execution times and is basically the current operation mode of the tester. Latency mode utilizes the bench tm suite and additionally tracks function minimum and maximum execution times. Signed-off-by: Tuomas Taipale <tuomas.taipale@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
Remove deprecated odp_pktio_capability_t.tx_compl.mode_all field. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-By: Nithin Dabilpurm <ndabilpuram@marvell.com>
Update CHANGELOG to use standard Markdown heading syntax. Improves compatibility with Markdown tools and eases copying release notes to GitHub. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Increment API version number to reflect the following changes: Backward compatible: - barrier: clarify that a barrier must be initialized before first use and can be reinitialized if not in use - barrier: clarify that a barrier can be reused without initializing it again - barrier: clarify that no more than N threads may be inside odp_barrier_wait() for a barrier of N threads - classifier: clarify that event aggregation is performed automatically for classified packets when aggregation is enabled in CoS parameters - classifier: clarify that classifier accessor functions return always base queue handles - crypto: add SNOW5G cipher and integrity algorithms ODP_CIPHER_ALG_SNOW5G_NEA4 and ODP_AUTH_ALG_SNOW5G_NIA4 - crypto: change description of odp_crypto_session_param_t.output_pool - pktio: clarify that event aggregation is performed automatically for incoming packets when aggregation is enabled in packet input queue parameters - pktio: clarify that odp_pktin_event_queue() returns always base input queue handles - queue: add new 'type' and 'aggr_config' fields to odp_queue_info_t and document struct contents better for event aggregator queues Remove deprecated APIs: - crypto: remove deprecated ODP_CRYPTO_OP_TYPE_LEGACY op type - pktio: remove deprecated odp_pktio_capability_t.tx_compl.mode_all field - pktio: remove deprecated odp_pktout_config_opt_t.bit.tx_compl_ena field - pktio: remove deprecated ODP_PACKET_TX_COMPL_ALL define - timer: remove deprecated odp_timer_pool_start() function Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Merge ODP linux-generic v1.49.0.0 into linux-dpdk. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Use odp_packet_has_ref() function for checking if packet has references to enable loop pktio code reuse with odp-dpdk. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
…ader Move evendev RX adapter function prototypes into a separate header to avoid naming conflicts from other eventdev internal types in odp_eventdev_internal.h. Signed-off-by: Matias Elo <matias.elo@nokia.com>
The classifier implementation enqueues packets directly to the destination queues, so the eventdev specific enqueue function for classified packets is no longer required. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…ol_start() function" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…ent hdr" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…rts" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…start" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…n unsupported device" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…pdate DPDK_MIN_RX_BURST" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…tion" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…on type" Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com>
…lues Explicitly set odp_crypto_session_param_t nonzero default values. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_packet_pull_head() and odp_packet_push_head() functions. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_packet_tail() function. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_packet_pull_tail() and odp_packet_push_tail() functions. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Inline implementation of odp_buffer_alloc() and odp_buffer_alloc_multi() functions. When odp_buffer_alloc()/odp_buffer_alloc_multi() functions are used by a dynamically linked application, depending on the used linker flags the application may see a separate copy of DPDK TLS variables compared to ODP library. rte_mempool_get_bulk() internally uses rte_lcore_id() function, which maps to a TLS variable. This can break per thread pool cache usage. To avoid this use rte_mempool_generic_get() function and select used cache manually. Signed-off-by: Matias Elo <matias.elo@nokia.com>
When odp_buffer_free()/odp_buffer_free_multi() functions are used by a dynamically linked application, depending on the used linker flags the application may see a separate copy of DPDK TLS variables compared to ODP library. rte_mempool_put_bulk() internally uses rte_lcore_id() function, which maps to a TLS variable. This can break per thread pool cache usage. To fix this use rte_mempool_generic_put() function and select used cache manually. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Some threads may simultaneously be sending or receiving packets while odp_pktio_stop() is called, which caused segmentation faults in DPDK PMD code. To fix this leave the pktio device running and only stop the DPDK side when the device is closed. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Add warning when multi segment send (pktio_dpdk: tx_offload_multi_segs) is not enabled in the config file. Signed-off-by: Matias Elo <matias.elo@nokia.com>
Include DPDK pktio config file options in odp_pktio_print() output. Signed-off-by: Matias Elo <matias.elo@nokia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.