Skip to content

lib,scx_p2dq: introduce arena topology #1885

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

Merged
merged 4 commits into from
May 20, 2025
Merged

Conversation

etsal
Copy link
Contributor

@etsal etsal commented May 14, 2025

Introduce a BPF struct for representing topology for the scheduler BPF side. Integrate it with scx_p2dq with the goal of using it for load balancing.

@etsal etsal requested review from hodgesds and JakeHillion May 14, 2025 20:20
@etsal
Copy link
Contributor Author

etsal commented May 14, 2025

TODO before this is mergeable:

  • Debug (this compiles but has never been run)
  • Split apart the changes to make this easier to review
  • replace the CPU mask construction in Rust with the scx_utils cpumask

@etsal
Copy link
Contributor Author

etsal commented May 19, 2025

Update: Works, but requires formatting into a proper patchset. Also requires factoring out the arena topology logic from the main P2DQ scheduler into something more reusable that also hides the Rust-BPF FFI scaffolding from the main code.

@etsal etsal force-pushed the arena-topology branch from 3c8e506 to 86e3490 Compare May 19, 2025 19:48
@etsal etsal marked this pull request as ready for review May 19, 2025 20:08
@etsal etsal force-pushed the arena-topology branch 5 times, most recently from fe70f05 to 121807b Compare May 19, 2025 21:17
@hodgesds
Copy link
Contributor

I'm seeing segfaults on large machines:

23:27:58 [INFO] DSQ[0] slice_ns 100000
23:27:58 [INFO] DSQ[1] slice_ns 3200000
23:27:58 [INFO] DSQ[2] slice_ns 6400000
23:27:58 [INFO] libbpf: struct_ops p2dq: member priv not found in kernel, skipping it as it's set to zero

23:27:58 [WARN] libbpf: prog 'scx_bitmap_from_bpf': relo #10: insn #8 (LDX/ST/STX) accesses field incorrectly. Make sure you are accessing pointers, unsigned integers, or fields of matching type and size.

mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 6, 17592191348736, 17592191352832, 17592191356928, 17592191361024]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 3 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
mask.len 9 ptr [0, 0, 0, 390, 562949953421312, 0, 0, 391, 391, 1125899906842624]
Segmentation fault

@etsal etsal force-pushed the arena-topology branch from 121807b to 2477c3b Compare May 20, 2025 02:35
@etsal etsal force-pushed the arena-topology branch from 2477c3b to c5cb9b4 Compare May 20, 2025 02:36
@etsal
Copy link
Contributor Author

etsal commented May 20, 2025

Code should now work with machines with high core counts.

@hodgesds
Copy link
Contributor

I rebased against main and I think we are good.

with arena topo:

Wakeup Latencies percentiles (usec) runtime 30 (s) (410150 total samples)
          50.0th: 6          (122967 samples)
          90.0th: 9          (151551 samples)
        * 99.0th: 14         (33242 samples)
          99.9th: 70         (2359 samples)
          min=1, max=11455
Request Latencies percentiles (usec) runtime 30 (s) (410968 total samples)
          50.0th: 6600       (123224 samples)
          90.0th: 10736      (164428 samples)
        * 99.0th: 12464      (36830 samples)
          99.9th: 16112      (3578 samples)
          min=5820, max=86172
RPS percentiles (requests) runtime 30 (s) (31 total samples)
          20.0th: 13680      (12 samples)
        * 50.0th: 13744      (12 samples)
          90.0th: 13776      (4 samples)
          min=12790, max=13813
average rps: 13698.93

vs main:

Wakeup Latencies percentiles (usec) runtime 30 (s) (409210 total samples)
          50.0th: 7          (107459 samples)
          90.0th: 10         (98080 samples)
        * 99.0th: 14         (27096 samples)
          99.9th: 104        (3474 samples)
          min=1, max=30553
Request Latencies percentiles (usec) runtime 30 (s) (409892 total samples)
          50.0th: 6632       (125837 samples)
          90.0th: 10768      (156135 samples)
        * 99.0th: 12528      (36499 samples)
          99.9th: 16336      (3610 samples)
          min=5802, max=72524
RPS percentiles (requests) runtime 30 (s) (31 total samples)
          20.0th: 13648      (9 samples)
        * 50.0th: 13712      (12 samples)
          90.0th: 13776      (9 samples)
          min=12423, max=13797
average rps: 13663.07

Copy link
Contributor

@hodgesds hodgesds left a comment

Choose a reason for hiding this comment

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

LGTM

@etsal etsal added this pull request to the merge queue May 20, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 20, 2025
@etsal etsal added this pull request to the merge queue May 20, 2025
Merged via the queue into sched-ext:main with commit c0a9408 May 20, 2025
16 checks passed
@etsal etsal deleted the arena-topology branch May 20, 2025 19:55
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