-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CI] Unify pipeline files into one, change harbor url #210
base: vNext
Are you sure you want to change the base?
Commits on Jan 14, 2024
-
issue: 3514044 Introducing cq_mgr_regrq and cq_mgr_strq
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1976934 - Browse repository at this point
Copy the full SHA 1976934View commit details -
issue: 3514044 Renaming cq_mgr_mlx5 to cq_mgr_regrq
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1495ac4 - Browse repository at this point
Copy the full SHA 1495ac4View commit details -
issue: 3514044 Renaming cq_mgr_mlx5_strq to cq_mgr_strq
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for fb6022f - Browse repository at this point
Copy the full SHA fb6022fView commit details -
issue: 3514044 Moving cq_mgr_regrq tx methods to cq_mgr
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f21880d - Browse repository at this point
Copy the full SHA f21880dView commit details -
issue: 3514044 Moving cq_mgr_regrq events to cq_mgr
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ea4a4e6 - Browse repository at this point
Copy the full SHA ea4a4e6View commit details -
issue: 3514044 Moving cq_mgr_regrq add_qp_tx to cq_mgr
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8f5999c - Browse repository at this point
Copy the full SHA 8f5999cView commit details -
issue: 3514044 Moving cq_mgr_regrq RX common to cq_mgr
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 16f67fc - Browse repository at this point
Copy the full SHA 16f67fcView commit details -
issue: 3514044 Moving Tx from cq_mgr to cq_mgr_tx
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 52d0cf5 - Browse repository at this point
Copy the full SHA 52d0cf5View commit details -
issue: 3514044 Rename cq_mgr to cq_mgr_rx
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7eb4156 - Browse repository at this point
Copy the full SHA 7eb4156View commit details -
issue: 3514044 Remove qp_rec struct
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 553cc35 - Browse repository at this point
Copy the full SHA 553cc35View commit details -
issue: 3514044 Squash qp_mgr_eth to qp_mgr
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 797c40c - Browse repository at this point
Copy the full SHA 797c40cView commit details -
issue: 3514044 Remove DEFINED_DPCP from qp_mgr and styling fixes
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5fb7681 - Browse repository at this point
Copy the full SHA 5fb7681View commit details -
issue: 3514044 Squash qp_mgr_eth_mlx5 to qp_mgr
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3e1a3bf - Browse repository at this point
Copy the full SHA 3e1a3bfView commit details -
issue: 3514044 Squash qp_mgr_eth_mlx5_dpcp to qp_mgr
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6dfaffc - Browse repository at this point
Copy the full SHA 6dfaffcView commit details -
issue: 3514044 Split qp_mgr to hw_queue_tx and hw_queue_rx
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c890d0d - Browse repository at this point
Copy the full SHA c890d0dView commit details -
issue: 3514044 Squash rfs_rule_dpcp to rfs_rule
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4bd1df4 - Browse repository at this point
Copy the full SHA 4bd1df4View commit details -
issue: 3514044 Removing m_attach_flow_data vector from rfs
At most a single element of this vector is always used. Once rfs constructor is complete there must be exactly one attach_flow_data element in case of ring_simple. For ring_tap this element remains null. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 01594f5 - Browse repository at this point
Copy the full SHA 01594f5View commit details -
issue: 3514044 Removing hqrx from attach_flow_data_t
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d5bb9e4 - Browse repository at this point
Copy the full SHA d5bb9e4View commit details -
issue: 3514044 Removing ibv steering flows
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 70b1bb3 - Browse repository at this point
Copy the full SHA 70b1bb3View commit details -
issue: 3514044 Adding flow tag check through dpcp::adapter
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bc3e728 - Browse repository at this point
Copy the full SHA bc3e728View commit details -
issue: 3514044 Require dpcp for configure and CI
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ea7dfd0 - Browse repository at this point
Copy the full SHA ea7dfd0View commit details -
issue: 3514044 Rebasing changes on top 3.20.5 with coverity fixes
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e2acc51 - Browse repository at this point
Copy the full SHA e2acc51View commit details -
issue 3514044 Fixing package test with mandatory dpcp
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0e91471 - Browse repository at this point
Copy the full SHA 0e91471View commit details -
issue: 3514044 Updating min dpcp version to 1.1.43
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d702e3c - Browse repository at this point
Copy the full SHA d702e3cView commit details -
issue: 3514044 Replacing .inl file with .h
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 67185ae - Browse repository at this point
Copy the full SHA 67185aeView commit details -
issue: 3514044 Removing option_strq
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3ce76f7 - Browse repository at this point
Copy the full SHA 3ce76f7View commit details -
issue: 3514044 Removing unnecessary checks
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6cda7bf - Browse repository at this point
Copy the full SHA 6cda7bfView commit details
Commits on Jan 17, 2024
-
issue: 3745279 Fix artifact generation in CI
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ecb0c8a - Browse repository at this point
Copy the full SHA ecb0c8aView commit details
Commits on Jan 18, 2024
-
issue: 3664594 Return ETIMEDOUT err for timed out socket
Set ETIMEDOUT errno and return -1 from recv in case a socket was timed out, instead of 0 return value and 0 errno. For instance, in case of TCP keep alive timeout. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bf0b744 - Browse repository at this point
Copy the full SHA bf0b744View commit details
Commits on Jan 22, 2024
-
Issue: 3375239 - add email scan in packages
The idea is to scan all rpm/deb packages for personal emails we should not be releasing packages with such emails the scan is done on both the metadat info and the changelog of a specific package Issue: HPCINFRA-919 Signed-off-by: Daniel Pressler <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 18f5d31 - Browse repository at this point
Copy the full SHA 18f5d31View commit details
Commits on Jan 25, 2024
-
issue: 3724170 Support building as a static library
- Enable LTO by default - Add support for PGO - Switch orig_os_api with direct syscalls Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b7ac236 - Browse repository at this point
Copy the full SHA b7ac236View commit details -
issue: 3724170 disable LTO in Jenkins compiler tests
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 2e5c9c6 - Browse repository at this point
Copy the full SHA 2e5c9c6View commit details -
issue: 3704820 Fix strides in WQE for NGINX master
PRM allows minimum of 512 RX strides per WQE. Adjust minimum value for NGINX master process from 32 to 512. Using also minimum stride size allowed - 64 instead of 512. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5e8fca0 - Browse repository at this point
Copy the full SHA 5e8fca0View commit details -
issue: 3678579 Update last_unacked on ACK recv
If all unacked queue is acked - update last_unacked to null. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ff34156 - Browse repository at this point
Copy the full SHA ff34156View commit details -
issue: 3678579 Fix last_unsent on retransmission
In case of pcb->is_last_seg_dropped - we might end up with wrong pcb->last_unsent. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4ff44ec - Browse repository at this point
Copy the full SHA 4ff44ecView commit details -
issue: 3678579 Fix last_unacked in tcp_rexmit_rto
Update last_unacked to null after RTO. In this case we move all unacked queue to unsent. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 2bf7224 - Browse repository at this point
Copy the full SHA 2bf7224View commit details -
issue: 3678579 Update last_unacked in tcp_rexmit
In tcp_rexmit we take the first segment from unacked and put it in unsent. In case its the only segment in unacked, we need to update last_unacked. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 43fe6e5 - Browse repository at this point
Copy the full SHA 43fe6e5View commit details -
issue: 3678579 Remove iterating lists to find last
Remove iterating over unsent / unacked to find last in lists. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 95845c3 - Browse repository at this point
Copy the full SHA 95845c3View commit details -
Checking for last_unsent and unsent for NULL is the same. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8a9d5b2 - Browse repository at this point
Copy the full SHA 8a9d5b2View commit details
Commits on Jan 30, 2024
-
issue: 3690535 Remove SO_XLIO_RING_USER_MEMORY
This is leftover from the Multi Packet RQ removal. In current code, this option doesn't have effect and only wastes 96 bytes per socket. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 07203a2 - Browse repository at this point
Copy the full SHA 07203a2View commit details -
issue: 3690535 Reduce ring_allocation_logic size
Remove multiple fields from the ring_allocation_logic class: - m_active is redundant. - m_type / m_owner are needed only for debug logs. 16 bytes per object is a high cost taking into account that ring migration is disabled by default. Also compact the structure. This patch saves 64 bytes per socket (sockinfo and dst_entry). Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b12b93a - Browse repository at this point
Copy the full SHA b12b93aView commit details -
issue: 3690535 Improve condition of ring migration support
Ring migration is disabled in most scenarios, so improve is_logic_support_migration() - check whether migration is disabled first. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8ec6c52 - Browse repository at this point
Copy the full SHA 8ec6c52View commit details -
issue: 3690535 Print ring allocation logic type in logs
Add to_str() which returns pointer to "this". Also, print the type in constructor, so each further debug message can be identified by the pointer. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1e92b28 - Browse repository at this point
Copy the full SHA 1e92b28View commit details -
issue: 3690535 Remove unused fields in sockinfo_tcp
Fields m_n_pbufs_rcvd and m_n_pbufs_freed are unused. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 871ff34 - Browse repository at this point
Copy the full SHA 871ff34View commit details -
[CI] Coverity: add snapshot action
Jira task: HPCINFRA-1430 Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 46d4172 - Browse repository at this point
Copy the full SHA 46d4172View commit details
Commits on Feb 1, 2024
-
issue: 3668182 Add tcp_write_zc/tcp_prealloc_zc
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 70467eb - Browse repository at this point
Copy the full SHA 70467ebView commit details -
issue: 3668182 Connect tcp_write_zc to sockinfo_tcp::tcp_tx
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4713505 - Browse repository at this point
Copy the full SHA 4713505View commit details -
issue: 3668182 Remove PBUF_DESC_MAP for send zerocopy
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 670058e - Browse repository at this point
Copy the full SHA 670058eView commit details -
issue: 3668182 Allow snd_buf drop below 0 in zero-copy path
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9ebbfef - Browse repository at this point
Copy the full SHA 9ebbfefView commit details -
issue: 3668182 Add sockinfo_tcp::tcp_tx_express
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 249369d - Browse repository at this point
Copy the full SHA 249369dView commit details -
issue: 3668182 Use tcp_tx_express in TLS tx zerocopy
Add tcp_tx_express to tcp_sockinfo_ops_tls::tx. I was unable to perform any refactoring, since: - tx_arg is the method argument - tls_arg is initialized at the beginning of the method and used in the nested loops. - tls_record class needs constant reassurance whether it is zerocopy or not. - tls_record class needs constant reassurance whether it is TLS1.2 or TLS1.3 version. - The blocking, non-blocking, zerocopy, non-zerocopy, TLS1.2., and TLS1.2 parts are tightly-coupled and no clean separation is possible without rewriting the code. - Need to allow blocking on small sndbuf in TLS Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3c63b73 - Browse repository at this point
Copy the full SHA 3c63b73View commit details -
issue: 3668182 Remove zerocopy flow from tcp_write
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cf7ff57 - Browse repository at this point
Copy the full SHA cf7ff57View commit details -
issue: 3668182 Refactor sockinfo_tcp
- Refactor cannot_do_requested_partial_write - Extract static function is_invalid_iovec - Extract method is_connected_and_ready_to_send - Extract method tcp_tx_slow_path - Extract method tcp_tx_handle_errno_and_unlock - Extract method tcp_tx_handle_done_and_unlock - Extract method tcp_tx_handle_partial_send_and_unlock - Check ready-to-send socket in express path Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 94f8392 - Browse repository at this point
Copy the full SHA 94f8392View commit details -
issue: 3668182 Refactor LwIP + sockinfo_tcp + dst_entry_tcp
- Remove oversize from pbuf_prealloc_express - Extract tcp_tx_handle_sndbuf_unavailable method - Promote pbuf.len checks to u32_t - Combine express_mkey and mkey into mkey - Remove pbuf_clen Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ff55e60 - Browse repository at this point
Copy the full SHA ff55e60View commit details -
issue: 3668182 Fix PR comments
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1e4e730 - Browse repository at this point
Copy the full SHA 1e4e730View commit details -
issue: 3668182 Revert tcp_seg::bufs to pbuf_clen()
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 00db3d7 - Browse repository at this point
Copy the full SHA 00db3d7View commit details
Commits on Feb 6, 2024
-
issue: 3724170 Add missing ifdef __cplusplus
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1bc79a7 - Browse repository at this point
Copy the full SHA 1bc79a7View commit details -
issue: 3724170 Remove references to os_api
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 181f582 - Browse repository at this point
Copy the full SHA 181f582View commit details -
issue: 3724170 Make xlio.h C standard compliant
Signed-off-by: Ben Walker <[email protected]> Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 72f513d - Browse repository at this point
Copy the full SHA 72f513dView commit details -
issue: 3724170 Disable the constructor/destructor in static build
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 65bbb00 - Browse repository at this point
Copy the full SHA 65bbb00View commit details -
issue: 3724170 Make socketxtreme API regular function declarations
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 24e427f - Browse repository at this point
Copy the full SHA 24e427fView commit details -
issue: 3724170 Fix compilation for static build
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 569a551 - Browse repository at this point
Copy the full SHA 569a551View commit details -
issue: 3724170 Disable the *_check functions for the static build
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4534754 - Browse repository at this point
Copy the full SHA 4534754View commit details
Commits on Feb 7, 2024
-
issue: 3771283 Fix function pointer check
The deleted define returned always true because it the address of orig_os_api._func instead of checking it's value. Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 660afb5 - Browse repository at this point
Copy the full SHA 660afb5View commit details
Commits on Feb 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0fe1ee1 - Browse repository at this point
Copy the full SHA 0fe1ee1View commit details
Commits on Feb 22, 2024
-
issue: 3786434 Remove C23 feature from public xlio_extra.h
Enum with underlying type is C++ or C23 feature. Move the enum definition to an internal header, because currently, it's unused in public API. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ae058d1 - Browse repository at this point
Copy the full SHA ae058d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2cdbc84 - Browse repository at this point
Copy the full SHA 2cdbc84View commit details
Commits on Feb 25, 2024
-
issue: 3792731 Fix -Walloc-size-larger-than warning
The false positive warning is generated during linking phase. Cast array size to 32bit type to suppress the warning. The warning appears in --enable-lto configuration likely due to inlined new[] operator and generated to the underlying malloc() call. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9ef53fc - Browse repository at this point
Copy the full SHA 9ef53fcView commit details -
issue: 3514044 Fix null pointer dereference
Accessing completion event channel for dummy RQ, that was created automatically by ibv when we create QP. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 077d5b2 - Browse repository at this point
Copy the full SHA 077d5b2View commit details
Commits on Feb 26, 2024
-
issue: 3795922 Remove pbuf_split_64k()
XLIO receives any incoming TCP payload in pbuf chains less than 64k. There is no point to do the splits on each receive. Sockinfo_tcp has no 64k limitation and this avoid extra operations. To clean the code and achieve possible minor performance improvement, remove pbuf_split_64k() and accept entire pbuf chain as is. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e82e642 - Browse repository at this point
Copy the full SHA e82e642View commit details -
issue: 3795922 Remove refused_data in lwip
refused_data was used to keep TCP payload which couldn't be received by sockinfo_tcp object and retry receive operation later. Only a single receive operation could be postponed in such a way and all the subsequent failures led to packet drops. sockinfo_tcp::rx_lwip_cb() doesn't produce an error by itself. All the possible errors are propagated by L3_tcp_input(). And all the errors lead to connection reset. So, there is no point to keep refused_data in current implementation. Remove refused_data to clean the code and save extra cache line read in fast TCP timer. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 83fc3f5 - Browse repository at this point
Copy the full SHA 83fc3f5View commit details -
issue: 3781322 Fix for 100% CPU load
Split poll_sn to poll_sn_rx and poll_sn_tx. Required after splitting cq to cq_rx and cq_tx. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 74c38c2 - Browse repository at this point
Copy the full SHA 74c38c2View commit details
Commits on Mar 10, 2024
-
issue: 3813802 Terminate process instead of 'throw' on panic
Panic level of logs terminate the process and don't return. Call std::terminate() to terminate the process unconditionally. Also, this fixes cppcheck warning that an exception is thrown without an object. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cbdbfec - Browse repository at this point
Copy the full SHA cbdbfecView commit details -
issue: 3813802 Don't wrap xlio_raw_post_recv() with IF_VERBS_FAILURE
IF_VERBS_FAILURE if supposed to be used with ibverbs API as a workaround for inconsistent API. However, using it for an internal method make the code dirty. Replace 'throw' with 'throw_xlio_exception' to suppress a cppcheck warning. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8b076f9 - Browse repository at this point
Copy the full SHA 8b076f9View commit details -
issue: 3813802 Avoid partial initialization of an event_data_t object
cppcheck generates a warning about uninitialized fields even if they're not used in fact. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b2c8589 - Browse repository at this point
Copy the full SHA b2c8589View commit details -
issue: 3813802 Remove dst_entry::m_p_send_wqe
This field is used as a local variable in 3 places. Allocate a variable on stack in the respective places instead of keeping it per socket. This fixes cppcheck warning about lifecycles of local and non-local variables. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for fb1a8ea - Browse repository at this point
Copy the full SHA fb1a8eaView commit details -
issue: 3813802 Fix type overflow warning in time_converter_rtc
cppcheck complains about 'int' type overflow in 0x3 << 30. Fix this with explicit unsigned type. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5a7881e - Browse repository at this point
Copy the full SHA 5a7881eView commit details -
issue: 3813802 Fix IP_FRAG_DEBUG=1 build
Debug code is disabled by default in ip_frag and has become broken. It assumes that mem_buf_desc_t::n_ref_count has a non atomic type. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for fa7aadd - Browse repository at this point
Copy the full SHA fa7aaddView commit details -
issue: 3813802 Include system headers in the right way
Use <> for the system headers. This suppresses "information" level warning of cppcheck. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4b205fb - Browse repository at this point
Copy the full SHA 4b205fbView commit details -
issue: 3813802 Remove unneeded cppcheck suppressions
Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for eecf0a5 - Browse repository at this point
Copy the full SHA eecf0a5View commit details
Commits on Mar 11, 2024
-
issue: 3770816 Use override instead virtual
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6803858 - Browse repository at this point
Copy the full SHA 6803858View commit details -
issue: 3770816 Use nullptr instead of NULL
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a095c8b - Browse repository at this point
Copy the full SHA a095c8bView commit details -
issue: 3770816 Remove redundant void argument lists
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b66af63 - Browse repository at this point
Copy the full SHA b66af63View commit details -
issue: 3770816 Replace empty destructor with default
Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for be5a307 - Browse repository at this point
Copy the full SHA be5a307View commit details -
issue: 3788369 Rename thread_local_event_handler
It's not thread_local specific anymore. This event handler will also be used within poll_group to provide TCP timers for the respective sockets. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e5f3ead - Browse repository at this point
Copy the full SHA e5f3eadView commit details -
issue: 3788369 Fix subsequent xlio_get_socket_rings_fds() calls
After the 1st call to xlio_get_socket_rings_fds(), XLIO remembers the resulting array within the socket object. However, subsequent calls return the array immediately without setting number of elements in the array. As result, the function returns 0 rings by mistake. Always set the number of elements to resolve the issue. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8561e11 - Browse repository at this point
Copy the full SHA 8561e11View commit details -
issue: 3788369 Return TX ring by xlio_get_socket_rings_fds()
xlio_get_socket_rings_fds() and xlio_get_socket_rings_num() return the TX ring now. This can be useful in case of TX ring != RX ring when extra API is used. Also don't remember resulting array and construct it on the fly. Usually, this API is called only once for a socket, so remembering the array is a waste of memory. Remove the check_rings() and hardcoded number of rings for SockeXtreme flow. Return actual rings to make more precise result. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e583d42 - Browse repository at this point
Copy the full SHA e583d42View commit details -
issue: 3788369 Don't reset TCP connection twice
XLIO_TCP_ABORT_ON_CLOSE option forces XLIO to send RST instead of FIN handshake. In this case, XLIO reset each connection twice. Fix this and check only once whether connection needs to send RST in prepare_to_close(). Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 757e0a1 - Browse repository at this point
Copy the full SHA 757e0a1View commit details -
issue: 3788369 Don't hardcode TCP send buffer for TCP_NODELAY
Once TCP_NODELAY option is set, XLIO disables Nagle's algorithm and sets TCP send buffer to a hardcoded value. This applies to setsockopt() and XLIO_TCP_NODELAY configuration. Avoid changing the send buffer and continues using either SO_SNDBUF or XLIO_TCP_SEND_BUFFER_SIZE value. Also, remove duplicated send buffer size from sockinfo_tcp object which was used only by getsockopt(). Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6215359 - Browse repository at this point
Copy the full SHA 6215359View commit details -
issue: 3788369 Disable MSG_ZEROCOPY tests in gtests
The tests fail to receive notifications via the error queue and disabled in CI as result. However, running the tests manually is inconvenient, because of the known failing test cases. Disable the failing tests in the code instead of CI script. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a750ddc - Browse repository at this point
Copy the full SHA a750ddcView commit details -
issue: 3788369 Remove XLIO_ZC_TX_SIZE
XLIO_ZC_TX_SIZE limited zerocopy segment size to the specified 16bit value. By default, this was 32KB. However, pbuf len is not limited to 16bit anymore and TCP segment has TSO limitation instead. Remove the option and use TSO capability to limit zerocopy TCP segments. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7a4f2da - Browse repository at this point
Copy the full SHA 7a4f2daView commit details -
issue: 3788369 Remove redundant max_send_sge field
tcp_pcb::max_send_sge is a copy of tcp_pcb::tso.max_send_sge, but reduced by 1. It was used in zerocopy POC implementation, because zerocopy segments were TSO segments with the TCP header in the 1st sge. Current implementation uses tcp_seg::l2_l3_tcphdr_zc[] to hold the header and doesn't require the reduced limit. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9c38f68 - Browse repository at this point
Copy the full SHA 9c38f68View commit details -
issue: 3788369 Pass iovec to tcp_write_express()
tcp_write_express() is a zerocopy version of tcp_write() and not limited by the sndbuf or queue length. Therefore, it's unlikely to fail. However, it still can fail to allocate pbuf or TCP segment in theory. Move the loop over iovec from higher level methods to tcp_write_express(), so we keep consistent TCP state if the memory allocation error happens in the middle of a complex send operation. Additionally, improve tcp_write_express() robustness and don't allow to append data to last segment if it's a retransmit. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cee8ca7 - Browse repository at this point
Copy the full SHA cee8ca7View commit details -
issue: 3788369 Don't poll RX while checking is_rst()
Condition is_connected_and_ready_to_send() does RX polling in case of TCP_CONN_CONNECTING state. The idea is to speedup the connected state, however, this has few drawbacks: - This is unlikely path, because there are mechanisms to async connect() to finish; - RX polling requires to be unlocked, so there is a race window between TX thread and concurrent RX which may change the state; - The RX polling doesn't guarantee that there is the last handshake packet in the RQ. Remove the polling, so checking for connected state is more lightweight and allowed under the socket lock. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 98e3ada - Browse repository at this point
Copy the full SHA 98e3adaView commit details -
issue: 3788369 Fix LwIP type length related to segment/pbuf size
Replace u16_t with u32_t to avoid type overflow. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a42d50d - Browse repository at this point
Copy the full SHA a42d50dView commit details -
issue: 3788369 Fix Nagle's algorithm for negative snd_buf
pcb::snd_buf can become negative in some flows. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 75221e0 - Browse repository at this point
Copy the full SHA 75221e0View commit details -
issue: 3788369 Remove redundant snd_buf check in LwIP
Higher level logic checks for sndbuf, so no need to check it again in tcp_write(). Also account SYN/FIN segments in snd_buf. Previously, this code was disabled, because of the corner case when snd_buf is 0. But now it can become negative. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 140401b - Browse repository at this point
Copy the full SHA 140401bView commit details -
issue: 3788369 Remove pbuf_desc::map
This field was used to hold mapping_t pointer, but the mapping is a mem_desc object now. Remove the leftover. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 236d43f - Browse repository at this point
Copy the full SHA 236d43fView commit details -
issue: 3788369 Introduce XLIO socket API
This is performance oriented and event based API for TCP sockets. It introduces a polling group (xlio_poll_group_t) which is a collection of sockets (xlio_socket_t) and a serialization context. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8779882 - Browse repository at this point
Copy the full SHA 8779882View commit details -
issue: 3788369 Remove lwip/init.[ch]
Remove stub initialization functions to clean the code. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4abcf4f - Browse repository at this point
Copy the full SHA 4abcf4fView commit details -
issue: 3788369 Remove pbuf_custom wrapper structure
Structure pbuf_custom doesn't serve its original purpose anymore and contains a single field pbuf. Remove the structure and use pbuf directly. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cdcc99c - Browse repository at this point
Copy the full SHA cdcc99cView commit details -
Configuration menu - View commit details
-
Copy full SHA for fea6e82 - Browse repository at this point
Copy the full SHA fea6e82View commit details
Commits on Mar 12, 2024
-
issue: HPCINFRA-1321 add Dockerfile for static tests
Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1d23a9d - Browse repository at this point
Copy the full SHA 1d23a9dView commit details -
issue: HPCINFRA-1321 Switch cppcheck to a docker
Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6e9a005 - Browse repository at this point
Copy the full SHA 6e9a005View commit details -
issue: HPCINFRA-1321 Switch csbuild to a docker
Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bda508b - Browse repository at this point
Copy the full SHA bda508bView commit details -
issue: HPCINFRA-1321 Switch Tidy to a docker
Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for accbf7b - Browse repository at this point
Copy the full SHA accbf7bView commit details
Commits on Mar 18, 2024
-
issue: 3777348 Remove unused pipeinfo class
There is no path to create pipeinfo objects. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9521056 - Browse repository at this point
Copy the full SHA 9521056View commit details -
issue: 3777348 Removing cleanable_obj from socket_fd_api
To simplify inheritance and make socket objects cache friendly, we avoid inheriting cleanable_obj which inserts only one boolean but trashes the sapce after vptr. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e449276 - Browse repository at this point
Copy the full SHA e449276View commit details -
issue: 3777348 Removing unused pkt_sndr_source class
The class pkt_sndr_source is unused empty interface. This adds undesired vptr to inheriting classes and trashes the cache. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4305473 - Browse repository at this point
Copy the full SHA 4305473View commit details -
issue: 3777348 Replacing pkt_rcvr_source class with sockinfo
The only consumer of pkt_rcvr_source is sockinfo hierarchy objects. Removing this abstraction allows cache friendly layout of sockinfo. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 29c6b63 - Browse repository at this point
Copy the full SHA 29c6b63View commit details -
issue: 3777348 Simplifying timers for TCP sockets
Removing inheritance of timer_handler from sockinfo_tcp allows o order fields in cache friendly manner. timer_hander add vptr ad related fields in an undesired location in the object layout. sockinfo_tcp is always handled by tcp_timer_collection which itslef is timer_handler. Thus, there is no real need in registering the socket itself into the internal thread. This removes complex code with handling groups inside timers registration which are used only for tcp_collection. For XLIO_TCP_CTL_THREAD=with_wakeup/no_wakeup we put the listen socket events to be handled as part of tcp_timer_collections instead of being registered directly on internal thread. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a1cb209 - Browse repository at this point
Copy the full SHA a1cb209View commit details -
issue: 3777348 Moving wakeup_pipe to be a member of sockinfo
Having sockinfo inheriting from wakeup_pipe inserts wakeup_pipe members in an undesired location in term of cache utilization for data path. The same functionallity can be achieved by having the wakeup_pipe as a member. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 19441e4 - Browse repository at this point
Copy the full SHA 19441e4View commit details -
issue: 3777348 Replacing socket_fd_api access with sockinfo
Before merging socket_fd_api with sockinfo, replace all access through socket_fd_api with sockinfo. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1aa581a - Browse repository at this point
Copy the full SHA 1aa581aView commit details -
issue: 3777348 Merging socket_fd_api with sockinfo
Removing redundant base from sockinfo allows to put data path members near the vptr for better cache utilization. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for fcbba6e - Browse repository at this point
Copy the full SHA fcbba6eView commit details -
issue: 3777348 Moving sockinfo inline impl outside the class
Having inline methods with long implementation outside the class makes the class definition more readable. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0168f14 - Browse repository at this point
Copy the full SHA 0168f14View commit details -
issue: 3777348 sockinfo Reordering methods
Reordering sockinfo methods for more readable definition. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d135aac - Browse repository at this point
Copy the full SHA d135aacView commit details
Commits on Mar 19, 2024
-
issue: 3777348 Moving sock stats outside the socket
Moving socket stats to be a global resource instead of inside of each socket. This reduces socket size by +500B and allows to disable stats for sockets or make few sockets to use stats. Socket stats are generally unneeded and limited in monitoring to 1024 anyway. In cases of 1K+ sockets these stats are overhead. This also allows to disable stats for sockets and improve cache misses. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for eca2eba - Browse repository at this point
Copy the full SHA eca2ebaView commit details -
issue: 3777348 Reordering sockinfo members
Reordering the sockinfo fields from random locations to group data path frequently accessed fields together. Placing frequently fields at the beggining of the object allows these members to be fetched with the cache line that fetches the vptr. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 38f8cd0 - Browse repository at this point
Copy the full SHA 38f8cd0View commit details -
issue: 3777348 Removing m_flow_tag_enabled check
The check for m_flow_tag_enabled is redundant as we already got flow-tag packet and know the socket. In worst case the flow_tag_id can be checked. Avoid unneeded memory access for critical data path. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 06a7917 - Browse repository at this point
Copy the full SHA 06a7917View commit details -
issue: 3777348 Remove support for SO_XLIO_FLOW_TAG
This support was added long ago. However, there are no more users for this option. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1949822 - Browse repository at this point
Copy the full SHA 1949822View commit details -
issue: 3777348 Avoid process_timestamps checking on each packet
Checking if timestamps are needed per each packet consumes more cpu cycles than checking once and then running another loop is better for most cases when timestamps are not required. wq Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 28ded23 - Browse repository at this point
Copy the full SHA 28ded23View commit details -
issue: 3777348 Remove precached sysvars from sockinfo
Precaching constant sysvar inside socket enlarges the socket and requires more cache lines. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0d975c0 - Browse repository at this point
Copy the full SHA 0d975c0View commit details -
issue: 3777348 Remove access to m_sock_wakeup_pipe for socketxtreme
Socketxtrme does not need to wakeup sockets by using m_sock_wakeup_pipe. This mechanism is used when a seperate thread sleeps on a blocking socket. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cb0b278 - Browse repository at this point
Copy the full SHA cb0b278View commit details -
issue: 3777348 Avoid checking m_iomux_ready_fd_array for Socketxtrme
This mechanism is used for poll/select only. Socketxtrme has its own polling mechanism. Accesing and checking this member/method is cycles/cache overhead. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 08956f8 - Browse repository at this point
Copy the full SHA 08956f8View commit details -
issue: 3777348 Avoid unnecessary access to ring_allocation_tx members
Cache optimization for data path. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6434e58 - Browse repository at this point
Copy the full SHA 6434e58View commit details -
issue: 3777348 Use thread_local dummy lock
It is enough to hold a thread_local dummy lock instead of allocating a seperate object for each socket. Dummy lock contains only empty methods. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 87a76ea - Browse repository at this point
Copy the full SHA 87a76eaView commit details -
issue: 3777348 Avoid copying src/dst addresses for TCP flow-tag DP
TCP 5T flow-tag data path always contains src/dst addresses in m_connected/m_bound memebers. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1ff8f40 - Browse repository at this point
Copy the full SHA 1ff8f40View commit details -
issue: 3808935 Add nullptr checks before dereferencing
There is no bug, this fix is aimed at suppressing the optimizer errors. Signed-off-by: Alex Briskin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7fb5963 - Browse repository at this point
Copy the full SHA 7fb5963View commit details -
issue: 3829626 Fix new TCP timers registration for reused sockets
A TCP time-wait used socket can call register_timer although it is already registered. This made the socket to be added more than once to the timers list. Adding a check to verify that the socket is not already in the list. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for af806d1 - Browse repository at this point
Copy the full SHA af806d1View commit details -
issue: 3829626 Fixing statistics init for reused sockets
A TCP reused socket calls socket_stats_init. However, the check inside socket_stats_init was for m_p_socket_stats which may point to sock_stats::t_dummy_stats and thus pass the condition and init the sockets as one that has stats. Further a pointer to dummy is returned to stats vector as regular stats object. Checking for m_has_stats instead of for m_p_socket_stats solves the issue. Since, m_has_stats initialized to true only if a real stats object is returned by sock_stats. This stats object will be held by the socket untill its destruction. A reused timewait socket that has stats will just reset its stats as part of socket_stats_init. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3a98c90 - Browse repository at this point
Copy the full SHA 3a98c90View commit details
Commits on Mar 20, 2024
-
issue: 3788369 Replace XLIO_HUGEPAGE_LOG2 with XLIO_HUGEPAGE_SIZE
XLIO Socket API introduced memory callback which provides information about internal memory allocation for RX/TX buffers. The callback also notifies about hugepage size and guarantees hugepage boundary alignment if hugepages are used. This makes XLIO hugepage configuration is more critical to user if their logic depends on hugepage properties. XLIO_HUGEPAGE_LOG2 is not user friendly, so replace it with XLIO_HUGEPAGE_SIZE configuration which accepts user readable format of the hugepage size. For example, XLIO_HUGEPAGE_SIZE=2MB. XLIO checks whether the requested hugepage size is supported by the system. But this check is moved to hugepage_mgr constructor, because g_hugepage_mgr is not initialized during reading XLIO configuration. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 27931ce - Browse repository at this point
Copy the full SHA 27931ceView commit details -
issue: 3788369 Remove xlio_key prototypes
XLIO socket API doesn't support crypto offload on this stage. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bf77b2c - Browse repository at this point
Copy the full SHA bf77b2cView commit details -
issue: 3788369 Move public types definitions to xlio_types.h
xlio.h and xlio_extra.h provides public API for different scenarios: explicit linkage and LD_PRELOAD respectively. Therefore, usually, it makes sense to use a single header. However, the headers have common types definitions. Move them to a separate xlio_types.h instead of including xlio_extra.h from xlio.h. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0dcadd3 - Browse repository at this point
Copy the full SHA 0dcadd3View commit details -
issue: 3788369 Add external allocator to XLIO Socket API
Allow user to take responsibility for XLIO buffers allocation. This can be useful if RX buffers needs to be placed to a special memory for further handling. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4df427c - Browse repository at this point
Copy the full SHA 4df427cView commit details -
issue: 3788369 Add XLIO Socket API to the xlio_api_t pointers
This allows to use XLIO Socket API with LD_PRELOAD approach via pointers. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f959cff - Browse repository at this point
Copy the full SHA f959cffView commit details -
issue: 3777348 Adding lock_spin_simple for smaller space utilization"
While lock_spin requires 16 bytes, the lock_spin_simple requires 4 bytes. This allows squashing data path members into less cache lines. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1baf574 - Browse repository at this point
Copy the full SHA 1baf574View commit details -
issue: 3777348 Adding template cached_obj_pool
Adding a class to act as a pool of different objects. Other objects that use this pool are introduced next. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6ab22fa - Browse repository at this point
Copy the full SHA 6ab22faView commit details -
issue: 3777348 Socketxtreme completions ring pool
Introduce ring pool of ring_ec objects which are used for Socketxtreme completion. Using such a pool decreases significantly the number of ring_ec obejcts needed. This, in turn, improves cache utilization. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 347c362 - Browse repository at this point
Copy the full SHA 347c362View commit details -
issue: Fix big endian build and clean unused macros
Compiler defines __BYTE_ORDER__ and others, but XLIO uses wrong names in the macros. Preprocessor replaces undefined names with 0, so XLIO always builds little endian branch. Fix the byte order names and fail a build if __BYTE_ORDER__ is not defined. Otherwise, the build would be broken on a big endian system. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4de688b - Browse repository at this point
Copy the full SHA 4de688bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 221ea72 - Browse repository at this point
Copy the full SHA 221ea72View commit details
Commits on Mar 31, 2024
-
issue: 3788369 Keep global collection of the polling groups
Keep a global collection to destroy remaining groups at exit. Usually, polling groups are pre-initialized in a small number (up to the number of CPU cores) and destroyed at exit. Therefore, the collection doesn't have to be efficient. Moreover, a group destruction is a heavy operation itself, therefore, optimizing the collection doesn't make sense. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dcdcd64 - Browse repository at this point
Copy the full SHA dcdcd64View commit details -
issue: 3788369 Keep sockets list per polling group
Keep a sockets list per polling group to close the remaining sockets on a group destruction. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dde0276 - Browse repository at this point
Copy the full SHA dde0276View commit details -
issue: 3788369 poll_group takes reference to ring
To avoid a race and extra destruction operations, take additional reference to each ring within a group. The race can happen if a socket destruction leads to its ring destruction, but user returns RX buffers after that. User may return buffers to a group regardless of socket lifecycle. In a scenario when user closes all the sockets in runtime, the respective ring would be destroyed and created with new socket again. This is expensive operation and the reference avoids the destruction. Current implementation keeps all the rings until net_device_val destructor. In the future, poll_group should release the reference and destroy the ring. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8452e00 - Browse repository at this point
Copy the full SHA 8452e00View commit details -
issue: 3788369 Throw exception if netdev not found for a ring
Rings are created in context of a net_device_val. Therefore, the net_device_val object must be present for an existing ring. However, API allows to return NULL by the netdev lookup and coverity generates a warning because of that. Throw an exception to suppress the coverity warning. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 617759e - Browse repository at this point
Copy the full SHA 617759eView commit details -
issue: 3788369 Release native rings in the poll_group destructor
poll_group takes additional reference to each its ring. But it doesn't release it once the group is destroyed. This leads to two issues: 1. Extra resources are utilized if user destroys a polling group before the application terminates. 2. Polling is not possible for a destroyed group. Therefore, if there are not completed WQEs in the SQ, respective sockets won't report TX completions and cannot be fully terminated. The ring needs to be destroyed to flush all the completions. Release all the native rings explicitly in the poll_group destructor to resolve the above issues. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 25351d9 - Browse repository at this point
Copy the full SHA 25351d9View commit details -
issue: 3788369 Don't free buffer unconditionally in XLIO Socket API
When an RX packet event happens, XLIO passes the ownership to user. Further, user releases the buffer explicitly. However, XLIO frees the buffer unconditionally just after emitting the event. Fix this and free buffers only if user doesn't provides the RX event callback. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0b3eb59 - Browse repository at this point
Copy the full SHA 0b3eb59View commit details -
issue: 3788369 Use reclaim_recv_buffers() in XLIO Socket API
reclaim_recv_single_buffer() accumulates buffers in a list. In the performance oriented API we want to reuse hot buffers immediately, so reclaim_recv_buffers() implementation is more suitable. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 69ca61f - Browse repository at this point
Copy the full SHA 69ca61fView commit details -
issue: 3788369 Pass proper hugepage_size to XLIO Socket API
The memory callback provides hugepage size of the underlying pages. Replace hardcoded 0 with real hugepage size. Keep the page size in xlio_allocator object. This field a relevant only the hugepage allocation method and 0 in all other cases. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8ad2b35 - Browse repository at this point
Copy the full SHA 8ad2b35View commit details -
issue: 3788369 Poll local ring before XLIO socket destruction
XLIO Socket API must guarantee that the XLIO_SOCKET_EVENT_TERMINATED is not followed by any other events. Therefore, all the TX completion events must be completed by that moment. Do a polling iteration before calling socket destructor to increase the chance that all the relevant WQEs are completed. This mechanism needs to be improved in the future. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7b8853d - Browse repository at this point
Copy the full SHA 7b8853dView commit details -
issue: 3788369 Re-read env params in xlio_init_ex()
xlio_init_ex() changes some default parameters. However, a global object can trigger safe_mce_sys() constructor at the start. Therefore, we need to re-read the environment variables again to guarantee that the changed parameters take place. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 64bf555 - Browse repository at this point
Copy the full SHA 64bf555View commit details -
issue: 3788369 Avoid POSIX connect() in xlio_socket_connect()
Avoid using connect() with sock fd interface, because fd_collection doesn't keep xlio_socket_t objects. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4771bdd - Browse repository at this point
Copy the full SHA 4771bddView commit details -
issue: 3788369 Remove get_fd() from XLIO Socket API
xlio_socket_t objects aren't connected to the fd_collection anymore. Therefore, all the methods must be called from the sockinfo_tcp objects directly. Also, xlio_socket_fd() is not relevant anymore and can be removed. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dfdbd8b - Browse repository at this point
Copy the full SHA dfdbd8bView commit details
Commits on Apr 1, 2024
-
issue: 3829626 Fix seg fault in TCP timers
Iterate over std::list of TCP sockets while erasing socket during iteration. Overcomed by increasing iterator before erase. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 86fc67a - Browse repository at this point
Copy the full SHA 86fc67aView commit details
Commits on Apr 3, 2024
-
issue: 3818038 Remove BlueFlame doorbell method
rdma-core limits number of UARs per context to 16 by default. After creating 16 QPs, XLIO receives duplicates of blueflame registers for each subsequent QP. As results, blueflame doorbell method can write WQEs concurrently without serialization and this leads to a data corruption. BlueFlame can make impact on throughput, since copy to the blueflame register is expensive. It can improve latency in some low latency scenarios, however, XLIO targets high traffic/PPS rates. Removing blueflame method also slightly improves performance in some scenarios. BlueFlame can be returned back in the future to improve low-latency scenarios, however, it will need some rework to avoid the data corruption. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 65130bd - Browse repository at this point
Copy the full SHA 65130bdView commit details -
issue: 3818038 Remove likely() from the inline WQE branch
The inline WQE branch is not likely in most throughput scenarios. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6f485a1 - Browse repository at this point
Copy the full SHA 6f485a1View commit details
Commits on Apr 4, 2024
-
issue: 3844385 Fix new TCP timers registration lock contention
Avoid calling register_socket_timer_event when a socket is already registered (TIME-WAIT). Although there is no functionality issue with that, it produces too high rate of posting events for internal-thread. This leads to lock contantion inside internal-thread and degraded performance of HTTP CPS. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ea38dd7 - Browse repository at this point
Copy the full SHA ea38dd7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e64060 - Browse repository at this point
Copy the full SHA 8e64060View commit details
Commits on Apr 8, 2024
-
issue: 3788164 Fix RX poll on TX option for UTLS
UTLS uses tcp_tx_express() for non blocking sockets. However, this TX method doesn't support XLIO_RX_POLL_ON_TX_TCP. Additional RX polling improves scenarios such as WEB servers. Insert RX polling into UTLS TX path to resolve performance degradation. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9b7eec0 - Browse repository at this point
Copy the full SHA 9b7eec0View commit details -
issue: 3855390 Fixing adding TCP timer twice warning
In heavy CPS scenarios a socket may go to TIME-WAIT state and be reused before first TCP timer registration is performed by internal-thread. 1. Setting timer_registered=true while posting the event prevents the second attemp to try and post the event again. 2. Adding sanity check in add_new_timer that verifies that the socket is not already in the timer map. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0678a45 - Browse repository at this point
Copy the full SHA 0678a45View commit details
Commits on Apr 9, 2024
-
issue: 3795997 Control TSO max payload size
Added new env parameter - XLIO_MAX_TSO_SIZE. It allows the user to control maximum size of TSO, instead of taking the maximum cap by HW. The default size is 256KB (maximum by current HW). Values higher than HW capabilities won't be taken into account. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for db61660 - Browse repository at this point
Copy the full SHA db61660View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e18c6a - Browse repository at this point
Copy the full SHA 1e18c6aView commit details
Commits on Apr 25, 2024
-
issue: 3858121 Fixing socket stats corruption on termination
When sock_stats was static its destructor was called before xlio_exit that destroys the internal-thread which destroys sockets. We should avoid having global objects with untrivial constructors/destructors, since there is no control of their execution order. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 2ca7928 - Browse repository at this point
Copy the full SHA 2ca7928View commit details
Commits on Apr 28, 2024
-
issue: 3854806 Fixing TX buffers return order in TCP socket destruction
When TCP socket is destroyed it frees the preallocated buffers after dst_entry is deleted. This returns the buffers to the global pool directly and breaks m_tx_num_bufs,m_zc_num_bufs ring counters. 1. Move the preallocated buffers cleanup before dst_entry destruction. 2. Add ring stats for m_tx_num_bufs and m_zc_num_bufs. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6c90533 - Browse repository at this point
Copy the full SHA 6c90533View commit details
Commits on May 1, 2024
-
issue: 3598943 Fixing adaptive CQ moderation
1. Removing hardcoded check that switches AIM to latency mode. In case of low packet rate the calculation will result in 0 count anyway. In case packet rate is higher than the desired interrupt rate we do want to utilize the AIM correctly. 2. Changing default AIM values to more reasonable. 3. Removing default values for Nginx and use AIM by default. This improves CPU utilization in low congested cases significantly.: Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ffc6804 - Browse repository at this point
Copy the full SHA ffc6804View commit details -
issue: 3832212 Print a deprecation warning for XLIO_TX/RX_BUFS
These parameters are deprecated and will be removed in the future. Use XLIO_MEMORY_LIMIT instead. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ef71ee6 - Browse repository at this point
Copy the full SHA ef71ee6View commit details -
issue: 3857909 Avoid using MCE_MAX_CQ_POLL_BATCH in runtime
MCE_MAX_CQ_POLL_BATCH usage requires it to be small enough. However, this is a logical upper limit and we want be able to raise it if necessary. Remove unused cq_mgr_tx::clean_cq() which uses MCE_MAX_CQ_POLL_BATCH for an array on stack. Adjust condition for RX buffers compensation to remove MCE_MAX_CQ_POLL_BATCH. However, this changes the logic and now, we forcibly compensate only the last RX buffer in RQ. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3cc173e - Browse repository at this point
Copy the full SHA 3cc173eView commit details -
issue: 3857909 Increase upper limit for XLIO_CQ_POLL_BATCH_MAX
MCE_MAX_CQ_POLL_BATCH is a logical upper limit for CQ polling batch size. There is no hard limitation for it, so raise it to maximum CQ size. This value can even exceed CQ size, because HW continue receiving packets during polling. Be default, this change doesn't have effect unless a higher value for XLIO_CQ_POLL_BATCH_MAX is set explicitly. This can be helpful in a scenario when a high traffic rate stops for a long time and number of packets in an RQ exceeds the batch size. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7c61634 - Browse repository at this point
Copy the full SHA 7c61634View commit details
Commits on May 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fc48742 - Browse repository at this point
Copy the full SHA fc48742View commit details
Commits on May 19, 2024
-
issue: 3556418 Align valgrind test with current library requirement
Valgrind becomes too slow in case checked process uses huge number of memory. So reduce memory usage to make valgrind working. Signed-off-by: Igor Ivanov <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 881a5f7 - Browse repository at this point
Copy the full SHA 881a5f7View commit details
Commits on May 29, 2024
-
Issue: HPCINFRA-2179 Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5f93664 - Browse repository at this point
Copy the full SHA 5f93664View commit details -
issue: Correct default value of XLIO_UTLS_RX in README
Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8ad8cb4 - Browse repository at this point
Copy the full SHA 8ad8cb4View commit details -
issue: Force a convention for Enabled/Disabled in README
There is a mix of "Enable"/"Enabled" in the default value descriptions. Replace it with "Enabled" everywhere. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1ea9f3a - Browse repository at this point
Copy the full SHA 1ea9f3aView commit details -
issue: 3875155 Replace endianness misconfiguration error with a warning
Replace #error directive with #warning if __BYTE_ORDER__ or __ORDER_..._ENDIAN__ is misconfigured. This resolves an issue with cppcheck when it cannot determine a working configuration and skips most of the files from scanning. The warning still fails the compilation process because of -Werror, however, cppcheck can scan sources now. Note, this is not an XLIO issue. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b15f190 - Browse repository at this point
Copy the full SHA b15f190View commit details -
issue: 3875155 Remove LWIP_ERR_T
This is unused macro which is supposed to allow developers to change err_t type with the definition. However, err_t definition can be changed directly in the err.h file if needed. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cb52843 - Browse repository at this point
Copy the full SHA cb52843View commit details
Commits on Jun 13, 2024
-
issue: 3788369 Remove m_required_send_block introduced by NVME offload
This field is used to avoid partial write of logical data blocks like PDUs. However, XLIO supports send buffer "overcommit" now and allows to push more data to the queue than the send buffer allows. Use this property of the send buffer to allow a single NVME PDU to exceed the limitation. This will save extra field per socket and simplify logic. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e65160d - Browse repository at this point
Copy the full SHA e65160dView commit details -
issue: 3788369 Move vlog_print_buffer() to vlogger.cpp
Printing a buffer is an unlikely branch, so no need to inline it. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 12b0365 - Browse repository at this point
Copy the full SHA 12b0365View commit details -
issue: 3788369 Optimize is_rts() checks in data path
While a socket is locked, it's state cannot be changed and the only scenario to change the state is to call polling or TCP timers. In the TX path we don't call timers and polling is called when the send buffer is full. Therefore, it's enough to check the connection state under the lock once for non-blocking sockets. For blocking sockets the check can be moved after the polling, because the connection state cannot be changed before. Check for g_b_exit is relevant only for blocking operations, so check it just before polling. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b54f9ce - Browse repository at this point
Copy the full SHA b54f9ceView commit details -
issue: 3788369 Remove object pointer from the list_node
list_node is always inlined to a class and its offset is known. Therefore, we can find the object pointer with a single arithmetic operation and save 8 bytes per list_node. Remove the list iterator. It's mostly unused and requires special treatment of the head and tail. Replace it with next() and prev(). Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d3a1b6c - Browse repository at this point
Copy the full SHA d3a1b6cView commit details -
issue: 3788369 Fix typo in the pending_to_remove list name
Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 23c527e - Browse repository at this point
Copy the full SHA 23c527eView commit details
Commits on Jun 16, 2024
-
issue: 3947690 Fix send() from XLIO Socket ESTABLISHED event
The ESTABLISHED event was called in a moment where the socket is not in a consistent state. Call the event after socket state transits to the CONNECTED state (not only TCP state). Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 319eebd - Browse repository at this point
Copy the full SHA 319eebdView commit details -
issue: 3947690 Convert mem_buf_desc_t to a standard layout type
Remove private access specifier to meet requirement of the standard layout type. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7ede388 - Browse repository at this point
Copy the full SHA 7ede388View commit details -
issue: 3947690 Use field ee as xlio_buf::userdata
Converting mem_buf_desc_t to xlio_buf can overwrite critical field pbuf::next, because user may change xlio_buf::userdata. Instead, provide mem_buf_desc_t::ee as xlio_buf, so we reuse an insignificant field in RX path. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5d4caa3 - Browse repository at this point
Copy the full SHA 5d4caa3View commit details -
issue: 3947680 Add flow_tag support for new XLIO socket API
Add XLIO sockets to the fd_collection array, but bypassing all the internal logic. This allows ring_slave to find socket object for the flow tag feature. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 83b44ad - Browse repository at this point
Copy the full SHA 83b44adView commit details
Commits on Jun 17, 2024
-
issue: 3947690 Fix RX statistics for XLIO Socket API
rx_lwip_cb_xlio_socket() missed RX statistics and xlio_stats showed zeros as result. Save the stats. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 80b7c41 - Browse repository at this point
Copy the full SHA 80b7c41View commit details -
issue: 3933912 Fix epoll ready list iteration
The recent xlio_list change introduced a bug into epoll ready list iteration: a socket can be removed from the list before getting the next item. This leads to iteration over a removed item causing endless loop. Remember 'si_next' before removing a socket from the list. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 28bb331 - Browse repository at this point
Copy the full SHA 28bb331View commit details -
issue: 3933912 Align mem_buf_desc_t to the cache line boundary
List node class has been reduced by 8 bytes and this made the mem_buf_desc_t structure unaligned. Add padding at the end. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5cec6bb - Browse repository at this point
Copy the full SHA 5cec6bbView commit details
Commits on Jun 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 154d051 - Browse repository at this point
Copy the full SHA 154d051View commit details
Commits on Jun 27, 2024
-
issue: 3958757 Change error message to warning when reading FS files
Adjust XLIO behavior to generate warnings instead of error messages when it is unable to access FS files. This may occur in containerized environments. Since default values are provided, the severity of the issue is less critical. Change the default log severity in read_file_to_int() from VLOG_ERROR to VLOG_WARNING,and rephrase print message for better clarity. Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5faae56 - Browse repository at this point
Copy the full SHA 5faae56View commit details
Commits on Jun 30, 2024
-
[CI] Migrate pipeline to Blossom
Change proj_jjb.yaml and job_matrix.yaml to fit the new nbu jenkins master, to allow it to run on the new jenkins instance Remove tap archives from job matrix, as it is not in use by anyone and the plugin is not installed on the new Blossom master Removed xlio-perf and libxlio pipelines as they arent being used anymore, only libxlio-opensource is. Issue: HPCINFRA-2278 Signed-off-by: NirWolfer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 510d523 - Browse repository at this point
Copy the full SHA 510d523View commit details
Commits on Jul 4, 2024
-
[Blackduck] Bugfix - ngci connecting to the wrong url
Changes made in this PR: Mellanox/ci-demo#90 requires the following changes in this repo Add credentialsId to login into the new gerrit url, skipDockerDaemonCheck configuration provided by the gerrit team. Issue: HPCINFRA-2289 Signed-off-by: NirWolfer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f9bfd4b - Browse repository at this point
Copy the full SHA f9bfd4bView commit details
Commits on Jul 8, 2024
-
issue: 3925885 Adjusting XLIO default allocation logic
Modified the default ring allocation logic from ‘ring per interface’ to ‘ring per thread’. Adjusted the MCE_SPEC_NGINX_DPU and MCE_SPEC_NGINX by setting ring_allocation_logic_tx/rx to ‘ring per interface’. Fixed a minor side-effect in the ring_allocation_logic constructor. Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4f9e224 - Browse repository at this point
Copy the full SHA 4f9e224View commit details
Commits on Jul 10, 2024
-
issue: 3848340 HPCINFRA-1734 Coverity: upgrade to v2023.12
Upgrade coverity to version 2023.12 Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7a0ccb1 - Browse repository at this point
Copy the full SHA 7a0ccb1View commit details -
issue: 3848340 Coverity fix uninitialized & unchecked return value
Removed redundant if check after ensuring buffer stack initialization Suppressed Coverity null dereference warning (False Positive) Initialized uninitialized class members stats_file and m_ioctl in mce_sys_var constructor Checked return value of gettime() in timer constructor and added error logging Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4e8d58b - Browse repository at this point
Copy the full SHA 4e8d58bView commit details -
issue: 3848340 Coverity Move Semantics
- Use move constructors and assignment operators for m_source, ring_allocation_logic, m_ip_addrs, and source_t to replace copy constructors and assignment - Simplify event_data_t initialization with concise constructor calls in event_handler_manager.cpp, causing assigned objects to be temporary rvalue references which invoke move semantics - Add specialized constructors for EV_IBVERBS, EV_RDMA_CM and EV_COMMAND types in event_data_t - Remove use of std::forward in ip_address constructor because addr is used afterward and would be in an unknown state if moved Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 07ce7f7 - Browse repository at this point
Copy the full SHA 07ce7f7View commit details -
issue: 3848340 Coverity Adjust Lock & Fix overflow
Guard m_error_queue in handle_recv_errqueue with lock when checking if it's empty since it's a shared resource. handle_recv_errqueue is only called in a few cases when the flag MSG_ERRQUEUE is set, so this change will cause no degradation Change iftype_value from char to int in get_iftype_from_ifname since iftype_value, which is returned from the function, is derived from atoi, which returns an int Change proto variable 16-bit positive number type from short to uint16_t, and update all occurrences in all functions Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5a95036 - Browse repository at this point
Copy the full SHA 5a95036View commit details -
issue: 3848340 Coverity Supress FalsePositives
Suppress irrelevant and false positive Coveritywarnings in various files using comments Turn off Coverity checks for sum of null dereference overflow, missing lock, assigned pointer, copy assignment call and other identified issues Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1c2710d - Browse repository at this point
Copy the full SHA 1c2710dView commit details
Commits on Jul 11, 2024
-
issue: 3964910 Align ring size to cache line
Fixes latency degradation caused by the reduced size of xlio_list. It created a gap in the ring class which is not cache line aligned. Added padding bytes to align it to a full cache line. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 838bcb7 - Browse repository at this point
Copy the full SHA 838bcb7View commit details -
issue: 3976537 Avoid TX polling in XLIO Socket flush
TX polling can trigger a zerocopy completion event. If this happens in context of xlio_poll_group_flush(), a send operation can break consistency between socket dirty status and their group's dirty list. To avoid the issue, don't poll TX outside the xlio_poll_group_poll() context. This will make the zerocopy completion events possible only from the polling context. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5e98325 - Browse repository at this point
Copy the full SHA 5e98325View commit details -
issue: 3976537 Remove leftover closed socket from the dirty list
If a dirty socket is closed without a flush, it must be removed from the group's dirty list. Otherwise, this can lead to a use-after-free issue. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 059e54a - Browse repository at this point
Copy the full SHA 059e54aView commit details -
issue: 3807308 Add Ring TSO statistics
TSO statistics are very important for tracking TX performance. Two variables are added, TSO packets number and TSO bytes number. With these two and with conjunction of total TX packets and bytes, the needed information can be derrived. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c6feba5 - Browse repository at this point
Copy the full SHA c6feba5View commit details -
issue: 3807308 [Test] Nginx constant reply module
Adding Nginx Constant Reply Module. This module allows to send simple constant replies from Nginx without accessing files or system resources. See module README for more information. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 39105d9 - Browse repository at this point
Copy the full SHA 39105d9View commit details
Commits on Jul 14, 2024
-
issue: 3949975 Fix -Wtemplate-id-cdtor in xlio_list
This fixes gcc-14 build. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 448a650 - Browse repository at this point
Copy the full SHA 448a650View commit details
Commits on Jul 15, 2024
-
issue: 3777769 Fix No traffic with VLAN tagged packets
Need to add the length of VLAN header to L2 header length in case of VLAN tagged packets, the issue was only in send to neigh flow when neigh is not resolved yet Signed-off-by: Bashar Abdelgafer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3c0f0ac - Browse repository at this point
Copy the full SHA 3c0f0acView commit details -
issue: 3981627 Print early logs to stderr
Early logs can be printed before vlogger subsystem initialization. If they are printed to stdout, this can interfere with tools that parse output, such as grep, awk, etc. Gtest calls a subshell command to find a default gw and early logs breaks this functionality. Example of such scenario is a container with prohibited read access to sysfs files which XLIO reads. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 10a41e2 - Browse repository at this point
Copy the full SHA 10a41e2View commit details -
Issue: HPCINFRA-2346 - fix building images in CI
LibXLIO CI definition under job_matrix.yaml has the credentials of rivermax which do not have permissions to pull docker images needed to build LibXLIO docker images Change harbor credentialsID under matrix_job.yaml to one with permissions over libxlio docker images Signed-off-by: NirWolfer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 23b3b06 - Browse repository at this point
Copy the full SHA 23b3b06View commit details -
issue: 3784248 Nginx UDP reuseport for IPv6
Add support for UDP reuse port for listen socket for both IPv4 and IPv6 at the same conf file. Signed-off-by: Iftah Levi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5e1e2cc - Browse repository at this point
Copy the full SHA 5e1e2ccView commit details -
issue: 3976544 Don't close epfd for event_handler_manager_local
Base class event_handler_manager closes m_epfd unconditionally in the destructor. But in case of local copy, the constructor exits early and leaves m_epfd initialized as 0. This leads to closing 0 file descriptor during the local copy destruction what causes runtime issues for objects related to the fd 0. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c9f0779 - Browse repository at this point
Copy the full SHA c9f0779View commit details -
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d20758e - Browse repository at this point
Copy the full SHA d20758eView commit details
Commits on Jul 24, 2024
-
issue: 3992651 Allow XLIO socket queue to grow for non-zc sends
Non-zerocopy (XLIO_SOCKET_SEND_FLAG_INLINE) operations reuse common tcp_write() which doesn't allow the queue to grow beyond specific number of pbufs. The limit is derived from the TCP send buffer and usually equals to hundreds or thousands of pbufs. XLIO Socket API encourages users to limit the inflight data and allows send operations to fails with the unrecoverable ENOMEM error. However, on the other hand, the API describes that send operations aren't limited by send buffer logic. To follow current XLIO Socket API description, allow the TCP queue to grow. To do this, increase the queue limit to 16M pbufs for XLIO sockets. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 64dd910 - Browse repository at this point
Copy the full SHA 64dd910View commit details -
issue: HPCINFRA-1798 switch Style step to clang-15 based container
- we're switching here to ubuntu22.04-based container providing the support to clang-15 and clang-format-15 Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 705acc9 - Browse repository at this point
Copy the full SHA 705acc9View commit details -
issue: HPCINFRA-1798 Update code base to clang-format-15
Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4a3aab3 - Browse repository at this point
Copy the full SHA 4a3aab3View commit details -
Issue: [Bugfix] blackduck reports wrong version
Blackduck module report output shows the wrong version, this is due to projectVersion under args being set to a static value Change projectVersion to the branch entered instead of static value Signed-off-by: NirWolfer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dd775c9 - Browse repository at this point
Copy the full SHA dd775c9View commit details
Commits on Jul 30, 2024
-
issue: 3981627 [gtest] Validate input IP address
sys_str2addr() converts a string address representation to the sockaddr structure. However, an invalid address sets either AF_INET or AF_INET6 address family and returns corrupted IP portion of the sockaddr object. Return AF_UNSPEC address family in case of an invalid IP address. So, default gateway detection can handle address parsing. Invalid port portion is still silently ignored. In the future, the function should return the conversion status and this needs to be handled explicitly by the function users. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for deb62bd - Browse repository at this point
Copy the full SHA deb62bdView commit details -
issue: 3981627 [gtest] Fix default gateway detection
sys_gateway() converts string address to a temporary sockaddr object on stack before changing the result object. However, a different uninitialized object is checked for the conversion status. Check the correct object. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c1ceab3 - Browse repository at this point
Copy the full SHA c1ceab3View commit details -
issue: 3928453 XLIO_PRINT_REPORT prints report unconditionally
Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5aa9d88 - Browse repository at this point
Copy the full SHA 5aa9d88View commit details -
issue: 3928453 Print "in use" buffers in the buffer pool statistics
Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ec9c160 - Browse repository at this point
Copy the full SHA ec9c160View commit details
Commits on Jul 31, 2024
-
issue: 3502635 Avoid epoll OS polling through internal thread
Involving internal thread in checking OS events introduces huge lock contentions and serious performance degradation. The mechanism relied on an assumption that internal thread will wake up for OS events since each epfd is added to internal thread epfd thus saving OS polls in main thread. This assumption is incorrect since in reality most of the time CQ events wake up internal thread as well. To resolve that epoll os polling mechanism we make epoll Os polling to be performed the same as for poll and select via OS poll ration parameters. Thus we remove involvment of internal thread, remove lock contention and improve performance. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ec3854a - Browse repository at this point
Copy the full SHA ec3854aView commit details -
issue: 3502635 Remove cached sys_var params from iomux
Removing cached sys_vars improves CPU cache usage and makes the structs smaller. Global sys_vars do not change during runtime and are hot in CPU cache. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f3371ce - Browse repository at this point
Copy the full SHA f3371ceView commit details -
issue: HPCINFRA-776 [CI] Release pipeline
Unti now, release process is done manually by the dev team. This process involves creating a tag on a commit that needs to be released, building that tag and copying the files to NFS location The idea is to create a jenkins pipeline that will do the entire process with given inputs, This commit will commence phase 1 - doing the build and copying of packages created to NFS. THE CREATION OF A RELEASE TAG ON A COMMIT IS NOT PART OF THIS PR Add release_jjb and the corosponding matrix file for a new pipeline definition, the release is run on rhel8.6 Add ARG HARBOR_URL to dockerfile, to support DRP in the future since the release process needs to run there as well Change do_release.sh script to match the new parameters provided by the jenkins job and pass ShellCheck Change create_pkg.sh to pass ShellCheck Signed-off-by: NirWolfer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bc0901b - Browse repository at this point
Copy the full SHA bc0901bView commit details -
issue: 3857909 Removing DEFINED_FORCE_TX_POLLING
The DEFINED_FORCE_TX_POLLING is always used and should not be turned off. This is an obsolete leftover which marked TX poll section in epoll and global-ring-poll. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 821adcf - Browse repository at this point
Copy the full SHA 821adcfView commit details -
issue: 3857909 Use lock() for notification mechanism
Using trylock for request_notification introduces more empty pollings. It is better to wait for lock to be available. Using trylock for wait_for_notification prevents cleanup of ibv events which will accumulate with each failed trylock. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e695278 - Browse repository at this point
Copy the full SHA e695278View commit details -
issue: 3857909 Removing unused return value from wait_for_notification
The return value of wait_for_notification methods is unused by upper layers. We never expect errors in wait_for_notification so errors are printed inside wait_for_notification itself. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bfe66fe - Browse repository at this point
Copy the full SHA bfe66feView commit details -
issue: 3857909 Removing m_b_was_drained from CQ mgr
This condition is only for Internal Thread. However this may prevent even internal thread from polling when CQ is not empty. Packets may arrive while m_b_was_drained set to true. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c6595ef - Browse repository at this point
Copy the full SHA c6595efView commit details -
issue: 3857909 Removing m_n_wce_counter for cq_mgr_rx
Removing m_n_wce_counter which prevents from Internal Thread to perform full polling cycle. This memeber also introduces unnecessary operations and cache access for fast path. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 2ca186b - Browse repository at this point
Copy the full SHA 2ca186bView commit details -
issue: 3857909 Clean deprecated XLIO_RX_POLL_OS_RATIO XLIO_RX_SKIP_OS
Cleanup of deprecated env params XLIO_RX_POLL_OS_RATIO and XLIO_RX_SKIP_OS. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6df1722 - Browse repository at this point
Copy the full SHA 6df1722View commit details -
issue: 3857909 Fix iomux sleep without draining the CQ
Rx Polling pools the CQ only up to X iterations. However, iomux call ring poll and if the polled CQEs do not generate an event, iomux may falsly conclude that the CQ is empty and go to sleep on non empty CQ which may lead to infinite sleep althouth there are unpolled CQEs in the CQ. To fix that, we should drain the CQ before going to sleep. In case a CQE arrives after we drained the CQ but before we requested a notification, we have another poll attempt after requesting the notification. Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 93ebf12 - Browse repository at this point
Copy the full SHA 93ebf12View commit details
Commits on Aug 4, 2024
-
issue: 3928006 Remove unused XLIO_BF
BlueFlame support has been removed. Besides, XLIO_BF was unused and an rdma-core specific env parameter was checked instead. Remove the parameter as a leftover. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f5cb57b - Browse repository at this point
Copy the full SHA f5cb57bView commit details
Commits on Aug 7, 2024
-
issue: 4019192 Always build TCP_OVERSIZE
TCP_OVERSIZE is enabled by default and there is no reason to disable it. Remove TCP_OVERSIZE macro to reduce #ifdef creep. If needed, this feature can be disabled manually in a single place in the code for debugging purposes. Also remove TCP_OVERSIZE_DBGCHECK code blocks as unused and not covered. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 743435b - Browse repository at this point
Copy the full SHA 743435bView commit details -
issue: 4019192 Remove tcp_rexmit_segment()
tcp_rexmit_segment() is unused. Remove it to avoid code rotting. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 89d5c30 - Browse repository at this point
Copy the full SHA 89d5c30View commit details -
issue: 4019192 Simplify tcp_pbuf_prealloc()
This function is overcomplicated and keeps some legacy logic. Remove the detection of buffer size to allocate, because all the TX buffers have constant size. This also removes unnecessary flags from the prototype. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4997611 - Browse repository at this point
Copy the full SHA 4997611View commit details -
issue: 4019192 Remove max_tcp_snd_queuelen
This is a duplicate information. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 12619aa - Browse repository at this point
Copy the full SHA 12619aaView commit details -
issue: 4019192 Rename max_unsent_len to snd_queuelen_max
Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d30a644 - Browse repository at this point
Copy the full SHA d30a644View commit details -
issue: 4019192 Don't grow snd_queuelen_max beyond hardcoded max
TCP_SNDQUEUELEN_OVERFLOW is treated as hardcoded maximum allowed queuelen and checked in runtime additionally to snd_queuelen_max. Instead, set upper limit to snd_queuelen_max in control flow and remove the extra checks. This also allows to configure "endless" queue unambiguously by setting it to exact TCP_SNDQUEUELEN_OVERFLOW value. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0338b8c - Browse repository at this point
Copy the full SHA 0338b8cView commit details -
issue: 4019192 Refactor oversized pbufs feature
Physical buffers have constant size. So, no point in providing max_length information during pbuf allocation and no need to keep unsent_overize. A PBUF_RAM always can keep at least mss_local bytes and we always can copy so many bytes to the last_unsent segment. This also makes impossible to reach the case when an extra PBUF_RAM is added to the last_unsent segment. Simplify the code around oversize feature and pbuf allocation. Signed-off-by: Dmytro Podgornyi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9d30fbc - Browse repository at this point
Copy the full SHA 9d30fbcView commit details
Commits on Aug 8, 2024
-
[CI] Remove the Ubuntu 20.x support
Issue: HPCINFRA-2185 Signed-off-by: Viacheslav Login <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e32833f - Browse repository at this point
Copy the full SHA e32833fView commit details -
Signed-off-by: Alexander Grissik <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9c949df - Browse repository at this point
Copy the full SHA 9c949dfView commit details
Commits on Aug 11, 2024
-
[CI] Unify pipeline files into one, change harbor url
Jenkins job builder (JJB) allows for multiple job definitions in one file, this will make it easier to share common variables such as folder or git url, as well as make it easier to maintain in the future. In the PDC site the harbor url is different and needs to be changed Merge all jjb files into one under proj_jjb.yaml Change registry url in release_matrix to match the PDC harbor url Remove the latest_release link from do_release script, requrest by the dev team Signed-off-by: NirWolfer <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 320ba9d - Browse repository at this point
Copy the full SHA 320ba9dView commit details