Skip to content

feat: add --deterministic-rng to make client randomness reproducible - #54

Merged
not-matthias merged 7 commits into
masterfrom
cod-3957-determinstic-rng
Oct 29, 2026
Merged

not-matthias merged 7 commits into
masterfrom
cod-3957-determinstic-rng

Conversation

@not-matthias

@not-matthias not-matthias commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

TLDR: Hash-seed randomness (Rust RandomState, CPython hash seed, glibc canary) changes bucket collisions and probe lengths between runs, which shows up as instruction-count noise. --deterministic-rng=yes serves every randomness source a client can observe from a fixed-seed PRNG (Linux only; time, pid and tid are deliberately untouched).

Core

  • AT_RANDOM auxv bytes come from a dedicated PRNG stream.
  • Each client thread gets its own splitmix64 stream, keyed by a monotonic creation counter (not the ThreadState slot), so the N-th created thread draws the same bytes whichever slot it reuses.

Syswrap

  • getrandom(2) completes in the PRE wrapper and never enters the kernel.
  • fds on /dev/random and /dev/urandom (resolved through /proc/self/fd) are tracked across open*, dup*, fcntl F_DUPFD*, close and close_range; read, pread64, readv, preadv, preadv2 on them are served from the PRNG.
  • Served paths keep kernel errors: a non-writable client buffer fails with EFAULT, and a device fd is only tracked if a zero-length read succeeds, so O_WRONLY and O_PATH fds keep the kernel's EBADF.
  • Served paths clear SfMayBlock; a PRE that completes a syscall must not keep it (syswrap-main.c:2440).

VEX (amd64)

  • When the host supports RDRAND/RDSEED, they draw from the calling thread's stream through a new LibVEX_SetRandom32 callback and always report success.
  • CPUID and decoding still follow the host: on hosts without them, they are neither advertised nor decoded, exactly as without the option. With the option off, the helpers run the host instructions as before.

Review notes

  • Option is parsed in the early pass because VG_(ii_create_image) writes AT_RANDOM before the main pass.
  • A forked child continues its parent's streams; under --trace-children=yes each exec'd program restarts from the seed.
  • Bytes depend on which thread makes the call, so runtimes that move work between threads based on timing (thread pools, work stealing, Go goroutines) can still vary.
  • PRNG output uses host byte order; only little-endian targets are supported for now.
  • Regtests: callgrind/tests/deterministic_rng pins the bytes per source, each draw on a fresh thread so libc's startup getrandom calls cannot shift the expectation, and checks the EFAULT/EBADF cases. none/tests/amd64/deterministic_rng covers RDRAND/RDSEED for every operand width, flags, stream advance and fresh threads; it only runs on hosts with both instructions.

@codspeed

codspeed Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 84 untouched benchmarks
⏩ 60 skipped benchmarks1


Comparing cod-3957-determinstic-rng (81d7365) with master (908f432)

Open in CodSpeed

Footnotes

  1. 60 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

@not-matthias
not-matthias force-pushed the cod-3957-determinstic-rng branch 2 times, most recently from a3e75ea to 0687003 Compare October 21, 2026 10:32
@not-matthias
not-matthias marked this pull request as ready for review October 21, 2026 10:33
@not-matthias
not-matthias force-pushed the cod-3957-determinstic-rng branch from 0687003 to 612a8c8 Compare October 21, 2026 10:35
@greptile-apps

greptile-apps Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[High impact] The PR appears safe to merge with the stated platform limits.

Summary

Adds opt-in reproducible randomness through --deterministic-rng=yes.

  • Linux clients can draw covered random values from fixed-seed streams.
  • On amd64, RDRAND and RDSEED use the caller's deterministic stream.

Previously accepted limits remain unchanged: not-matthias deferred portability guards because their execution targets have the required APIs, excluded big-endian and non-Linux targets, accepted private descriptor-table limits because Valgrind already shares them, and set Ubuntu 24.04+ as the toolchain baseline.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A["--deterministic-rng=yes"] --> B["Dedicated startup stream"]
  A --> C["Per-thread stream"]
  A --> D["Fixed boot UUID stream"]
  B --> E["AT_RANDOM"]
  C --> F["getrandom and random-device reads"]
  C --> G["RDRAND and RDSEED"]
  C --> H["Proc UUID text"]
  D --> I["Proc boot_id text"]
  J["Kernel preserves proc read results"] --> H
  J --> I
Loading

Reviews (5) · Last reviewed commit: "feat(callgrind): make proc UUID reads de..." · Reviewed by Greptile

Comment thread coregrind/m_syswrap/syswrap-linux.c Resolved
Comment thread callgrind/tests/Makefile.am Resolved
Comment thread coregrind/m_syswrap/syswrap-generic.c Resolved
@not-matthias
not-matthias removed the request for review from GuillaumeLagrange October 21, 2026 13:10
@not-matthias
not-matthias force-pushed the cod-3957-determinstic-rng branch from 612a8c8 to fd10c47 Compare October 21, 2026 13:30
Comment thread coregrind/m_syswrap/syswrap-generic.c Resolved
Comment thread coregrind/m_syswrap/syswrap-generic.c Resolved
Comment thread coregrind/m_syswrap/syswrap-generic.c Resolved
Comment thread coregrind/m_syswrap/syswrap-linux.c Resolved
@not-matthias
not-matthias force-pushed the cod-3957-determinstic-rng branch from fd10c47 to 5f43405 Compare October 21, 2026 14:20
Comment thread coregrind/m_syswrap/syswrap-generic.c Resolved
Comment thread none/tests/amd64/Makefile.am Resolved
Comment thread coregrind/m_syswrap/syswrap-linux.c Resolved
@not-matthias
not-matthias force-pushed the cod-3957-determinstic-rng branch from 5f43405 to 76c6a38 Compare October 21, 2026 14:41
Comment thread coregrind/m_syswrap/syswrap-linux.c Resolved

@GuillaumeLagrange GuillaumeLagrange left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, although thorough testing will be required

@art049 art049 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good to me on the approach although as mentionned in the changelog, we still miss some non deterministic randomness.

Would it be hard to cover /proc/sys/kernel/random/* devices?
For example /proc/sys/kernel/random/uuid might be widely used, pretty sure there are others

For clock_gettime definitely this will be a mess with certificates and a lot of other things so let's not deal with it now.

I think we need to cover arm64 for cpu level randomness.

Comment thread VEX/priv/guest_amd64_helpers.c Resolved
@not-matthias

Copy link
Copy Markdown
Member Author

Looks good to me on the approach although as mentionned in the changelog, we still miss some non deterministic randomness.

Would it be hard to cover /proc/sys/kernel/random/* devices? For example /proc/sys/kernel/random/uuid might be widely used, pretty sure there are others

For clock_gettime definitely this will be a mess with certificates and a lot of other things so let's not deal with it now.

I think we need to cover arm64 for cpu level randomness.

Implemented support for some /proc/sys/kernel/random/* variables that can be spoofed. See:
7a783cb (this PR)

@not-matthias
not-matthias requested a review from art049 October 27, 2026 18:56

@art049 art049 left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

OLGTM bearing this comment.
If we can make the overall change simpler and the same for x64 and arm it will be easier

@not-matthias
not-matthias force-pushed the cod-3957-determinstic-rng branch from 534de53 to 58430f6 Compare October 29, 2026 13:52
Add a fixed-seed splitmix64 PRNG and the --deterministic-rng=no|yes
option (parsed in the early pass, since VG_(ii_create_image) runs before
the main option pass). When on:

- AT_RANDOM is filled from a dedicated stream instead of the kernel's
  bytes, so glibc's canary/pointer guard and Go's hash seed are stable.
- Every client thread gets its own stream in VG_(alloc_ThreadState),
  keyed by a monotonic creation counter rather than the ThreadState slot,
  so the N-th created thread draws the same bytes whichever slot it
  reuses.

Also update the --help snapshots.
…c PRNG

With --deterministic-rng=yes, getrandom(2) is completed in the PRE
wrapper from the calling thread's stream and never reaches the kernel.
fds opened on /dev/random or /dev/urandom (resolved via /proc/self/fd)
are tracked across open/openat/openat2, dup/dup2/dup3, fcntl F_DUPFD*,
close and close_range; read, pread64, readv, preadv and preadv2 on a
tracked fd are served the same way. Served paths clear SfMayBlock, as a
PRE that completes the syscall must not keep it.

All served paths go through ML_(rng_serve_read), which fails with
EFAULT when the client buffer is not writable instead of faulting
inside Valgrind. A newly opened device fd is only tracked if a
zero-length read succeeds, so O_WRONLY and O_PATH fds keep the
kernel's EBADF.
Route amd64 RDRAND and RDSEED helpers through a VEX callback backed by
the calling thread's PRNG stream when --deterministic-rng is enabled,
so both instructions always report success with reproducible values.

CPUID and instruction decoding still follow the host: the instructions
are only advertised and decoded where the host CPU supports them. With
the option off, the helpers execute the host instructions as before.
Test all operand widths, status flags, advancing streams and fresh
threads on hosts with RDRAND and RDSEED.
Under --deterministic-rng=yes, print AT_RANDOM and bytes from
getrandom, /dev/urandom via read, a dup'd fd and readv. Each source is
drawn on a fresh, sequentially joined thread so the expected bytes do
not depend on how much libc pulls from getrandom(2) before main().

Also check that the served paths keep the kernel's errors: EFAULT for a
read-only buffer and EBADF for O_WRONLY and O_PATH device fds.
Describe the option in the core manual and the CodSpeed changelog: the
covered randomness sources, per-thread streams, fork and exec
behavior, and known limits (thread affinity of draws, Go map
iteration order).
Cover /proc/sys/kernel/random/uuid and boot_id with typed RNG descriptor
tracking. Draw UUIDv4 text from the calling thread stream and derive
boot_id independently from the fixed seed.

Run proc reads under the big lock and replace only returned bytes,
retaining kernel offsets, short reads, EOF and errors. Snapshot vector
reads before output can overwrite their iovecs. Add regression coverage
and document the supported sources.
With --deterministic-rng, stop advertising RDRAND and RDSEED in CPUID so
runtimes that check for them fall back to getrandom or /dev/urandom,
which are already served from the PRNG. This matches arm64, where VEX
does not support the hardware RNG instruction.

Decoding still follows the host, so programs that execute the
instructions without checking CPUID keep getting the seeded values.

Refs COD-3957
@not-matthias
not-matthias force-pushed the cod-3957-determinstic-rng branch from 58430f6 to 81d7365 Compare October 29, 2026 14:26
@not-matthias
not-matthias merged commit 81d7365 into master Oct 29, 2026
9 checks passed
@not-matthias
not-matthias deleted the cod-3957-determinstic-rng branch October 29, 2026 14:30
gimsesu pushed a commit to gimsesu/opentelemetry-collector that referenced this pull request Nov 3, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.6.0` → `v5.6.3` |
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.39.1` → `v4.39.2` |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action</summary>

###
[`v5.6.3`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.3)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.1...v5.6.3)

Bumps the CodSpeed runner to
[v5.6.3](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.3),
including
[v5.6.2](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.2).

##### Highlights

##### Go benchmark times match `go test`

`b.Loop()` benchmarks that stop and restart the timer inside an
iteration now report all of their timed work. A round previously counted
only the time since the most recent `StartTimer`, so results for those
benchmarks will move.

##### Unsupported `go test` flags no longer fail the run

`go test -p 1 ./... -bench .` used to strip `-p`, parse `1` as a
package, and fail with `package 1 is not in std` after every benchmark
had passed. Flags and their values are now dropped together.

##### Fixed randomness in CPU Simulation

`getrandom()`, `/dev/urandom`, `AT_RANDOM` and hardware RNG instructions
now return the same values on every CPU Simulation run, removing one
source of run-to-run variance.

##### Fixes

- Simulation: fix SIGILL on arm64 when programs read previously
unsupported CPU ID registers or `TPIDRRO_EL0`
([#&open-telemetry#8203;59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)).
- Go: benchmarks that draw from the global `math/rand` now start from
the same seed on every run, so their results no longer vary between runs
([#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/codspeed/pull/596)).

##### 🚀 Features

- Seed Go's global math/rand deterministically
([#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/action/issues/596))
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/runner/pull/596)
- Always enable deterministic RNG
([#&open-telemetry#8203;600](https://redirect.github.com/CodSpeedHQ/action/issues/600))
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;600](https://redirect.github.com/CodSpeedHQ/runner/pull/600)

##### 🐛 Bug Fixes

- Bump go-runner to
[1.4.0](https://redirect.github.com/CodSpeedHQ/codspeed-go/releases/tag/v1.4.0)
([#&open-telemetry#8203;605](https://redirect.github.com/CodSpeedHQ/action/issues/605))
by [@&open-telemetry#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&open-telemetry#8203;605](https://redirect.github.com/CodSpeedHQ/runner/pull/605)
- fix(cli): drop the value of unsupported go test flags by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#67](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/67)
- fix(go-runner): count all timed segments of a b.Loop() iteration by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#69](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/69)

##### ⚙️ Internals

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed12](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed12)
([#&open-telemetry#8203;604](https://redirect.github.com/CodSpeedHQ/action/issues/604))
by [@&open-telemetry#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&open-telemetry#8203;604](https://redirect.github.com/CodSpeedHQ/runner/pull/604)
- feat: add --deterministic-rng to make client randomness reproducible
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#54](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/54)
- feat(vex): serve arm64 RNDR and RNDRRS with --deterministic-rng by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#56](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/56)
- fix(vex): decode arm64 MRS of all EL0-visible ID registers by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- chore: bump runner version to 5.6.2 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;255](https://redirect.github.com/CodSpeedHQ/action/pull/255)
- chore: bump runner version to 5.6.3 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;256](https://redirect.github.com/CodSpeedHQ/action/pull/256)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.1...v5.6.3>

###
[`v5.6.1`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.1)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.0...v5.6.1)

Bumps the CodSpeed runner to
[v5.6.1](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.1).

##### Fixes

- Walltime: the runner no longer hangs after the benchmark exits when a
Python process forks and leaves a corrupted perf jitdump
([#&open-telemetry#8203;599](https://redirect.github.com/CodSpeedHQ/codspeed/pull/599))
- Simulation: stop the libpython symlink warning from firing falsely
([#&open-telemetry#8203;594](https://redirect.github.com/CodSpeedHQ/codspeed/pull/594))

##### 🐛 Bug Fixes

- Stop the libpython symlink warning from firing falsely by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;594](https://redirect.github.com/CodSpeedHQ/runner/pull/594)

##### 💼 Other

- Bump submodule to not loop on corrupted jit dump by
[@&open-telemetry#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in [#&open-telemetry#8203;599](https://redirect.github.com/CodSpeedHQ/runner/pull/599)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- docs(examples): update the example workflows by
[@&open-telemetry#8203;SuperMuel](https://redirect.github.com/SuperMuel) in
[#&open-telemetry#8203;252](https://redirect.github.com/CodSpeedHQ/action/pull/252)
- chore: bump runner version to 5.6.1 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;254](https://redirect.github.com/CodSpeedHQ/action/pull/254)

#### New Contributors

- [@&open-telemetry#8203;SuperMuel](https://redirect.github.com/SuperMuel) made their
first contribution in
[#&open-telemetry#8203;252](https://redirect.github.com/CodSpeedHQ/action/pull/252)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.0...v5.6.1>

</details>

<details>
<summary>github/codeql-action</summary>

###
[`v4.39.2`](https://redirect.github.com/github/codeql-action/releases/tag/v4.39.2)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.39.1...v4.39.2)

- Update default CodeQL bundle version to
[2.27.4](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.27.4).
[#&open-telemetry#8203;4284](https://redirect.github.com/github/codeql-action/pull/4284)
- *Upcoming breaking change*: CodeQL version 2.22.3 and earlier were
discontinued on 16 October 2026 alongside GitHub Enterprise Server 3.18,
and will be unsupported by the next minor release of the CodeQL Action.
Added a deprecation warning for customers using these versions of
CodeQL.
[#&open-telemetry#8203;4266](https://redirect.github.com/github/codeql-action/pull/4266)
- Starting with macOS 27 and Xcode 27, traced analyses are unsupported.
See [this blog post for more
information](https://github.blog/changelog/2026-10-19-codeql-changes-for-macos-27-xcode-27-and-swift-6-4/).
The CodeQL Action will now try to identify if a workflow is about to
perform a traced analysis on version 27 or above of macOS or Xcode. If
so, the CodeQL Action will emit a corresponding warning that will also
be visible on the [Tool Status
Page](https://docs.github.com/en/code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/use-the-tools-status-page-for-code-scanning).
This check will be rolled out following this release of the CodeQL
Action.
[#&open-telemetry#8203;4221](https://redirect.github.com/github/codeql-action/pull/4221)
- The undocumented TRAP cache cleanup feature that could be enabled
using the `CODEQL_ACTION_CLEANUP_TRAP_CACHES` environment variable has
been removed, as announced in the release notes for CodeQL Action
4.35.2. The `analyze` Action now warns if this environment variable is
set. If you used TRAP cache cleanup to limit Actions cache usage, we
recommend disabling TRAP caching by passing the `trap-caching: false`
input to the `init` Action.
[#&open-telemetry#8203;4243](https://redirect.github.com/github/codeql-action/pull/4243)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "on tuesday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjIwNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
NUAAwqy pushed a commit to NUAAwqy/opentelemetry-go that referenced this pull request Nov 4, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.6.1` → `v5.6.3` |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action</summary>

###
[`v5.6.3`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.3)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.1...v5.6.3)

Bumps the CodSpeed runner to
[v5.6.3](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.3),
including
[v5.6.2](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.2).

##### Highlights

##### Go benchmark times match `go test`

`b.Loop()` benchmarks that stop and restart the timer inside an
iteration now report all of their timed work. A round previously counted
only the time since the most recent `StartTimer`, so results for those
benchmarks will move.

##### Unsupported `go test` flags no longer fail the run

`go test -p 1 ./... -bench .` used to strip `-p`, parse `1` as a
package, and fail with `package 1 is not in std` after every benchmark
had passed. Flags and their values are now dropped together.

##### Fixed randomness in CPU Simulation

`getrandom()`, `/dev/urandom`, `AT_RANDOM` and hardware RNG instructions
now return the same values on every CPU Simulation run, removing one
source of run-to-run variance.

##### Fixes

- Simulation: fix SIGILL on arm64 when programs read previously
unsupported CPU ID registers or `TPIDRRO_EL0`
([#&open-telemetry#8203;59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)).
- Go: benchmarks that draw from the global `math/rand` now start from
the same seed on every run, so their results no longer vary between runs
([#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/codspeed/pull/596)).

##### 🚀 Features

- Seed Go's global math/rand deterministically
([#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/action/issues/596))
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/runner/pull/596)
- Always enable deterministic RNG
([#&open-telemetry#8203;600](https://redirect.github.com/CodSpeedHQ/action/issues/600))
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;600](https://redirect.github.com/CodSpeedHQ/runner/pull/600)

##### 🐛 Bug Fixes

- Bump go-runner to
[1.4.0](https://redirect.github.com/CodSpeedHQ/codspeed-go/releases/tag/v1.4.0)
([#&open-telemetry#8203;605](https://redirect.github.com/CodSpeedHQ/action/issues/605))
by [@&open-telemetry#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&open-telemetry#8203;605](https://redirect.github.com/CodSpeedHQ/runner/pull/605)
- fix(cli): drop the value of unsupported go test flags by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#67](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/67)
- fix(go-runner): count all timed segments of a b.Loop() iteration by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#69](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/69)

##### ⚙️ Internals

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed12](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed12)
([#&open-telemetry#8203;604](https://redirect.github.com/CodSpeedHQ/action/issues/604))
by [@&open-telemetry#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&open-telemetry#8203;604](https://redirect.github.com/CodSpeedHQ/runner/pull/604)
- feat: add --deterministic-rng to make client randomness reproducible
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#54](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/54)
- feat(vex): serve arm64 RNDR and RNDRRS with --deterministic-rng by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#56](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/56)
- fix(vex): decode arm64 MRS of all EL0-visible ID registers by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- chore: bump runner version to 5.6.2 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;255](https://redirect.github.com/CodSpeedHQ/action/pull/255)
- chore: bump runner version to 5.6.3 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;256](https://redirect.github.com/CodSpeedHQ/action/pull/256)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.1...v5.6.3>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-go).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMDQuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjIwNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
NUAAwqy pushed a commit to NUAAwqy/opentelemetry-go that referenced this pull request Nov 5, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.6.1` → `v5.6.3` |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action</summary>

###
[`v5.6.3`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.3)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.1...v5.6.3)

Bumps the CodSpeed runner to
[v5.6.3](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.3),
including
[v5.6.2](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.2).

##### Highlights

##### Go benchmark times match `go test`

`b.Loop()` benchmarks that stop and restart the timer inside an
iteration now report all of their timed work. A round previously counted
only the time since the most recent `StartTimer`, so results for those
benchmarks will move.

##### Unsupported `go test` flags no longer fail the run

`go test -p 1 ./... -bench .` used to strip `-p`, parse `1` as a
package, and fail with `package 1 is not in std` after every benchmark
had passed. Flags and their values are now dropped together.

##### Fixed randomness in CPU Simulation

`getrandom()`, `/dev/urandom`, `AT_RANDOM` and hardware RNG instructions
now return the same values on every CPU Simulation run, removing one
source of run-to-run variance.

##### Fixes

- Simulation: fix SIGILL on arm64 when programs read previously
unsupported CPU ID registers or `TPIDRRO_EL0`
([#&open-telemetry#8203;59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)).
- Go: benchmarks that draw from the global `math/rand` now start from
the same seed on every run, so their results no longer vary between runs
([#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/codspeed/pull/596)).

##### 🚀 Features

- Seed Go's global math/rand deterministically
([#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/action/issues/596))
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;596](https://redirect.github.com/CodSpeedHQ/runner/pull/596)
- Always enable deterministic RNG
([#&open-telemetry#8203;600](https://redirect.github.com/CodSpeedHQ/action/issues/600))
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&open-telemetry#8203;600](https://redirect.github.com/CodSpeedHQ/runner/pull/600)

##### 🐛 Bug Fixes

- Bump go-runner to
[1.4.0](https://redirect.github.com/CodSpeedHQ/codspeed-go/releases/tag/v1.4.0)
([#&open-telemetry#8203;605](https://redirect.github.com/CodSpeedHQ/action/issues/605))
by [@&open-telemetry#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&open-telemetry#8203;605](https://redirect.github.com/CodSpeedHQ/runner/pull/605)
- fix(cli): drop the value of unsupported go test flags by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#67](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/67)
- fix(go-runner): count all timed segments of a b.Loop() iteration by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#69](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/69)

##### ⚙️ Internals

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed12](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed12)
([#&open-telemetry#8203;604](https://redirect.github.com/CodSpeedHQ/action/issues/604))
by [@&open-telemetry#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&open-telemetry#8203;604](https://redirect.github.com/CodSpeedHQ/runner/pull/604)
- feat: add --deterministic-rng to make client randomness reproducible
by [@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#54](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/54)
- feat(vex): serve arm64 RNDR and RNDRRS with --deterministic-rng by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#56](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/56)
- fix(vex): decode arm64 MRS of all EL0-visible ID registers by
[@&open-telemetry#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- chore: bump runner version to 5.6.2 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;255](https://redirect.github.com/CodSpeedHQ/action/pull/255)
- chore: bump runner version to 5.6.3 by
[@&open-telemetry#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&open-telemetry#8203;256](https://redirect.github.com/CodSpeedHQ/action/pull/256)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.1...v5.6.3>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-go).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMDQuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjIwNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJTa2lwIENoYW5nZWxvZyIsImRlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate Bot added a commit to gigabit-clowns/rexlib-metadata that referenced this pull request Nov 6, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.6.0` → `v5.6.3` |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action</summary>

###
[`v5.6.3`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.3)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.1...v5.6.3)

Bumps the CodSpeed runner to
[v5.6.3](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.3),
including
[v5.6.2](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.2).

##### Highlights

##### Go benchmark times match `go test`

`b.Loop()` benchmarks that stop and restart the timer inside an
iteration now report all of their timed work. A round previously counted
only the time since the most recent `StartTimer`, so results for those
benchmarks will move.

##### Unsupported `go test` flags no longer fail the run

`go test -p 1 ./... -bench .` used to strip `-p`, parse `1` as a
package, and fail with `package 1 is not in std` after every benchmark
had passed. Flags and their values are now dropped together.

##### Fixed randomness in CPU Simulation

`getrandom()`, `/dev/urandom`, `AT_RANDOM` and hardware RNG instructions
now return the same values on every CPU Simulation run, removing one
source of run-to-run variance.

##### Fixes

- Simulation: fix SIGILL on arm64 when programs read previously
unsupported CPU ID registers or `TPIDRRO_EL0`
([#&#8203;59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)).
- Go: benchmarks that draw from the global `math/rand` now start from
the same seed on every run, so their results no longer vary between runs
([#&#8203;596](https://redirect.github.com/CodSpeedHQ/codspeed/pull/596)).

##### 🚀 Features

- Seed Go's global math/rand deterministically
([#&#8203;596](https://redirect.github.com/CodSpeedHQ/action/issues/596))
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;596](https://redirect.github.com/CodSpeedHQ/runner/pull/596)
- Always enable deterministic RNG
([#&#8203;600](https://redirect.github.com/CodSpeedHQ/action/issues/600))
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;600](https://redirect.github.com/CodSpeedHQ/runner/pull/600)

##### 🐛 Bug Fixes

- Bump go-runner to
[1.4.0](https://redirect.github.com/CodSpeedHQ/codspeed-go/releases/tag/v1.4.0)
([#&#8203;605](https://redirect.github.com/CodSpeedHQ/action/issues/605))
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;605](https://redirect.github.com/CodSpeedHQ/runner/pull/605)
- fix(cli): drop the value of unsupported go test flags by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#67](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/67)
- fix(go-runner): count all timed segments of a b.Loop() iteration by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#69](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/69)

##### ⚙️ Internals

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed12](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed12)
([#&#8203;604](https://redirect.github.com/CodSpeedHQ/action/issues/604))
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;604](https://redirect.github.com/CodSpeedHQ/runner/pull/604)
- feat: add --deterministic-rng to make client randomness reproducible
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#54](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/54)
- feat(vex): serve arm64 RNDR and RNDRRS with --deterministic-rng by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#56](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/56)
- fix(vex): decode arm64 MRS of all EL0-visible ID registers by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- chore: bump runner version to 5.6.2 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;255](https://redirect.github.com/CodSpeedHQ/action/pull/255)
- chore: bump runner version to 5.6.3 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;256](https://redirect.github.com/CodSpeedHQ/action/pull/256)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.1...v5.6.3>

###
[`v5.6.1`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.1)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.0...v5.6.1)

Bumps the CodSpeed runner to
[v5.6.1](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.1).

##### Fixes

- Walltime: the runner no longer hangs after the benchmark exits when a
Python process forks and leaves a corrupted perf jitdump
([#&#8203;599](https://redirect.github.com/CodSpeedHQ/codspeed/pull/599))
- Simulation: stop the libpython symlink warning from firing falsely
([#&#8203;594](https://redirect.github.com/CodSpeedHQ/codspeed/pull/594))

##### 🐛 Bug Fixes

- Stop the libpython symlink warning from firing falsely by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;594](https://redirect.github.com/CodSpeedHQ/runner/pull/594)

##### 💼 Other

- Bump submodule to not loop on corrupted jit dump by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in [#&#8203;599](https://redirect.github.com/CodSpeedHQ/runner/pull/599)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- docs(examples): update the example workflows by
[@&#8203;SuperMuel](https://redirect.github.com/SuperMuel) in
[#&#8203;252](https://redirect.github.com/CodSpeedHQ/action/pull/252)
- chore: bump runner version to 5.6.1 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;254](https://redirect.github.com/CodSpeedHQ/action/pull/254)

#### New Contributors

- [@&#8203;SuperMuel](https://redirect.github.com/SuperMuel) made their
first contribution in
[#&#8203;252](https://redirect.github.com/CodSpeedHQ/action/pull/252)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.0...v5.6.1>

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Madrid)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [x] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/gigabit-clowns/rexlib-metadata).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMjAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjIyMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Martin Salinas <ssalinasmartin@gmail.com>
renovate Bot added a commit to spiraldb/onpair that referenced this pull request Nov 9, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.6.1` → `v5.6.3` |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action</summary>

###
[`v5.6.3`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.3)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.1...v5.6.3)

Bumps the CodSpeed runner to
[v5.6.3](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.3),
including
[v5.6.2](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.2).

##### Highlights

##### Go benchmark times match `go test`

`b.Loop()` benchmarks that stop and restart the timer inside an
iteration now report all of their timed work. A round previously counted
only the time since the most recent `StartTimer`, so results for those
benchmarks will move.

##### Unsupported `go test` flags no longer fail the run

`go test -p 1 ./... -bench .` used to strip `-p`, parse `1` as a
package, and fail with `package 1 is not in std` after every benchmark
had passed. Flags and their values are now dropped together.

##### Fixed randomness in CPU Simulation

`getrandom()`, `/dev/urandom`, `AT_RANDOM` and hardware RNG instructions
now return the same values on every CPU Simulation run, removing one
source of run-to-run variance.

##### Fixes

- Simulation: fix SIGILL on arm64 when programs read previously
unsupported CPU ID registers or `TPIDRRO_EL0`
([#&#8203;59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)).
- Go: benchmarks that draw from the global `math/rand` now start from
the same seed on every run, so their results no longer vary between runs
([#&#8203;596](https://redirect.github.com/CodSpeedHQ/codspeed/pull/596)).

##### 🚀 Features

- Seed Go's global math/rand deterministically
([#&#8203;596](https://redirect.github.com/CodSpeedHQ/action/issues/596))
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;596](https://redirect.github.com/CodSpeedHQ/runner/pull/596)
- Always enable deterministic RNG
([#&#8203;600](https://redirect.github.com/CodSpeedHQ/action/issues/600))
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;600](https://redirect.github.com/CodSpeedHQ/runner/pull/600)

##### 🐛 Bug Fixes

- Bump go-runner to
[1.4.0](https://redirect.github.com/CodSpeedHQ/codspeed-go/releases/tag/v1.4.0)
([#&#8203;605](https://redirect.github.com/CodSpeedHQ/action/issues/605))
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;605](https://redirect.github.com/CodSpeedHQ/runner/pull/605)
- fix(cli): drop the value of unsupported go test flags by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#67](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/67)
- fix(go-runner): count all timed segments of a b.Loop() iteration by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#69](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/69)

##### ⚙️ Internals

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed12](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed12)
([#&#8203;604](https://redirect.github.com/CodSpeedHQ/action/issues/604))
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;604](https://redirect.github.com/CodSpeedHQ/runner/pull/604)
- feat: add --deterministic-rng to make client randomness reproducible
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#54](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/54)
- feat(vex): serve arm64 RNDR and RNDRRS with --deterministic-rng by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#56](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/56)
- fix(vex): decode arm64 MRS of all EL0-visible ID registers by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

#### What's Changed

- chore: bump runner version to 5.6.2 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;255](https://redirect.github.com/CodSpeedHQ/action/pull/255)
- chore: bump runner version to 5.6.3 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;256](https://redirect.github.com/CodSpeedHQ/action/pull/256)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.1...v5.6.3>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/spiraldb/onpair).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMjAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjIyMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJjaGFuZ2Vsb2cvY2hvcmUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate Bot added a commit to jan-mue/pycodium that referenced this pull request Nov 10, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) |
action | patch | `v5.6.1` → `v5.6.3` |

---

### Release Notes

<details>
<summary>CodSpeedHQ/action</summary>

###
[`v5.6.3`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v5.6.3)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/action/compare/v5.6.1...v5.6.3)

Bumps the CodSpeed runner to
[v5.6.3](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.3),
including
[v5.6.2](https://redirect.github.com/CodSpeedHQ/codspeed/releases/tag/v5.6.2).

##### Highlights

##### Go benchmark times match `go test`

`b.Loop()` benchmarks that stop and restart the timer inside an
iteration now report all of their timed work. A round previously counted
only the time since the most recent `StartTimer`, so results for those
benchmarks will move.

##### Unsupported `go test` flags no longer fail the run

`go test -p 1 ./... -bench .` used to strip `-p`, parse `1` as a
package, and fail with `package 1 is not in std` after every benchmark
had passed. Flags and their values are now dropped together.

##### Fixed randomness in CPU Simulation

`getrandom()`, `/dev/urandom`, `AT_RANDOM` and hardware RNG instructions
now return the same values on every CPU Simulation run, removing one
source of run-to-run variance.

##### Fixes

- Simulation: fix SIGILL on arm64 when programs read previously
unsupported CPU ID registers or `TPIDRRO_EL0`
([#&#8203;59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)).
- Go: benchmarks that draw from the global `math/rand` now start from
the same seed on every run, so their results no longer vary between runs
([#&#8203;596](https://redirect.github.com/CodSpeedHQ/codspeed/pull/596)).

##### 🚀 Features

- Seed Go's global math/rand deterministically
([#&#8203;596](https://redirect.github.com/CodSpeedHQ/action/issues/596))
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;596](https://redirect.github.com/CodSpeedHQ/runner/pull/596)
- Always enable deterministic RNG
([#&#8203;600](https://redirect.github.com/CodSpeedHQ/action/issues/600))
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[#&#8203;600](https://redirect.github.com/CodSpeedHQ/runner/pull/600)

##### 🐛 Bug Fixes

- Bump go-runner to
[1.4.0](https://redirect.github.com/CodSpeedHQ/codspeed-go/releases/tag/v1.4.0)
([#&#8203;605](https://redirect.github.com/CodSpeedHQ/action/issues/605))
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;605](https://redirect.github.com/CodSpeedHQ/runner/pull/605)
- fix(cli): drop the value of unsupported go test flags by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#67](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/67)
- fix(go-runner): count all timed segments of a b.Loop() iteration by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/codspeed-go#69](https://redirect.github.com/CodSpeedHQ/codspeed-go/pull/69)

##### ⚙️ Internals

- Bump pinned valgrind-codspeed to
[3.26.0-0codspeed12](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/releases/tag/3.26.0-0codspeed12)
([#&#8203;604](https://redirect.github.com/CodSpeedHQ/action/issues/604))
by [@&#8203;adriencaccia](https://redirect.github.com/adriencaccia) in
[#&#8203;604](https://redirect.github.com/CodSpeedHQ/runner/pull/604)
- feat: add --deterministic-rng to make client randomness reproducible
by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#54](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/54)
- feat(vex): serve arm64 RNDR and RNDRRS with --deterministic-rng by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#56](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/56)
- fix(vex): decode arm64 MRS of all EL0-visible ID registers by
[@&#8203;not-matthias](https://redirect.github.com/not-matthias) in
[CodSpeedHQ/valgrind-codspeed#59](https://redirect.github.com/CodSpeedHQ/valgrind-codspeed/pull/59)

**Full Runner Changelog**:
<https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md>

##### What's Changed

- chore: bump runner version to 5.6.2 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;255](https://redirect.github.com/CodSpeedHQ/action/pull/255)
- chore: bump runner version to 5.6.3 by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;256](https://redirect.github.com/CodSpeedHQ/action/pull/256)

**Full Changelog**:
<CodSpeedHQ/action@v5.6.1...v5.6.3>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/jan-mue/pycodium).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yMjIuNSIsInVwZGF0ZWRJblZlciI6IjQ0LjIyMi41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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.

3 participants