Skip to content

Client tracing preparations - #1150

Merged
mahkoh merged 6 commits into
masterfrom
jorth/trace-preparations
Aug 1, 2026
Merged

Client tracing preparations#1150
mahkoh merged 6 commits into
masterfrom
jorth/trace-preparations

Conversation

@mahkoh

@mahkoh mahkoh commented Aug 1, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings August 1, 2026 14:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares groundwork for client tracing by extending the wire parser/codegen flow with shared message iteration and request/event metadata, and by adding io_uring futex op support and related SQE/sys updates.

Changes:

  • Add io_uring futex wait/wake tasks and integrate them into the io_uring task caching infrastructure.
  • Extend io_uring SQE/sys definitions with the new union field and newer opcode constants.
  • Refactor wire parsing/codegen to expose ParseResult::messages() and track whether a parsed message is a request.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
wire-to-xml/src/main.rs Switch to ParseResult::messages() for unified message iteration when computing protocol version.
src/utils/array.rs Add SliceExt helpers for viewing parts of slices as fixed-size arrays.
src/io_uring/sys.rs Update SQE layout with union6 and extend io_uring opcode constants up to the newer IORING_OP_LAST.
src/io_uring/ops/futex.rs Introduce futex wait/wake io_uring operations and encoding.
src/io_uring/ops.rs Export the new futex ops module.
src/io_uring.rs Wire futex tasks into io_uring caches and re-export FutexObj.
build/wire/parser.rs Track request/event kind per Message and add ParseResult::messages() iterator helper.
build/wire.rs Refactor to parse files first and then write code; use messages() helper for generation.
Suppressed comments (1)

src/utils/array.rs:36

  • split_array currently uses unsafe pointer casting and get_unchecked. This can be expressed safely via split_at + TryInto, which keeps the method safe without relying on unsafe internals.
    fn split_array<const N: usize>(&self) -> Option<(&[Self::T; N], &[Self::T])> {
        if self.len() < N {
            return None;
        }
        let array = unsafe { &*self.as_ptr().cast::<[Self::T; N]>() };

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/io_uring/ops/futex.rs
Comment thread src/utils/array.rs
Comment thread src/io_uring/ops/futex.rs
@mahkoh
mahkoh merged commit 4173d89 into master Aug 1, 2026
14 checks passed
@mahkoh
mahkoh deleted the jorth/trace-preparations branch August 1, 2026 14:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants