Repository navigation
Resolve current master conflicts and preserve UBSHM IPC V2 negotiation - #75
Merged
zchuango merged 11 commits intoOct 16, 2026
Conversation
Fail during dependency discovery when WITH_BORINGSSL is enabled and required components are missing. Check the include directory, SSL library, and Crypto library separately to avoid reporting success for an incomplete library list.
…apache#3571) PR3332 introduced a Zvbc vector CRC32C path, but its implementation kept per-lane scalar round-trips (vector->scalar xor->vector) in the hot loop and fixed VLEN=128 (vsetvl_e64m1(2)), so VLEN>=256 cores only used half the width. On Spacemit X100 the Zvbc path measured ~450-600 MB/s, slower than the scalar Zbc path (~1.5 GB/s), making the "Zvbc preferred" dispatch a ~2.5x regression there. Rewrite rv_crc32c_vclmul: - adaptive VLEN: one e64m1 pair at VLEN>=256 (4 lanes) or two pairs at VLEN=128 (4 lanes carried on 2 vectors), so 128-bit cores run the vector path at full width; - pure-vector main loop: vlseg2e64 de-interleaved loads and vclmul_vx broadcast constants (k1..k4), zero scalar extraction; - all-vector reduction: single-element vector vclmul for the 4-to-1 lane merge and Barrett reduction, removing scalar-clmul dependencies (safe on cores with Zvbc but no scalar Zbc, e.g. SG2044); - same fold constants and math as the scalar core -> bit-exact. Correctness on k3: RFC3720 vectors (4 standard PASS), Extend composition, 70 boundary/misalign/large combos, and the official CRC.* gtest suite (5/5 PASSED) all bit-consistent across table/clmul/vclmul. Performance on k3 (X100, VLEN=256, 100-round median, same harness as PR3312): len PR3332 vclmul (MB/s) this (MB/s) speedup 1 KiB 578 5895 10.2x 4 KiB 590 9400 15.9x 64 KiB 600 11502 19.2x 1 MiB 508 11708 23.1x Signed-off-by: Xiaofei Gong <gongxiaofei24@iscas.ac.cn> Signed-off-by: YuanSheng <yuansheng@isrc.iscas.ac.cn>
The AMF0 number is a peer-controlled double; casting NaN or values outside [0, UINT32_MAX] to uint32_t is undefined behavior (UBSan float-cast-overflow) and decodes to different ids per platform. Validate the range before the cast.
/hotspots/* wrote view and base into its inline script without the ValidProfilePath check that its *_non_responsive handler already applies, and /rpcz printed the pointer of the time parameter instead of the escaped value.
* Add IPC_V2 data path for UBRing IPC * Move IPC_V2 ring implementation out of header --------- Co-authored-by: BGQ99 <1132767344@qq.com>
…lity Resolve UBSHM handshake conflicts using the tested rebased tree. Retain backend-specific format negotiation, remote shared-memory lengths, and upstream IPC V2 tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolve the conflicts between the transport-handshake branch and Apache master at 154783f.
Validation
Linux WSL build with RDMA and UBRing enabled:
Integration
The final source tree was first reconstructed by rebasing onto current Apache master and tested. This delivery commit has the existing transport-handshake tip and current Apache master as its two parents, so it can be merged into transport-handshake without rewriting that protected/shared branch.
Please use a merge commit, not squash or rebase-merge, when integrating this PR: the upstream master ancestry must be retained. After integration, re-check apache/brpc pull request 3535 mergeability and CI against the then-current master. This PR does not directly modify the community PR source branch.