Skip to content

systrap: preserve latency medians across histogram reset - #14426

Open
ayushr2 wants to merge 1 commit into
google:masterfrom
ayushr2:codex/fix-systrap-fastpath-median
Open

systrap: preserve latency medians across histogram reset#14426
ayushr2 wants to merge 1 commit into
google:masterfrom
ayushr2:codex/fix-systrap-fastpath-median

Conversation

@ayushr2

@ayushr2 ayushr2 commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

sentryOnStubOn records the current stub- and sentry-bound latency medians,
then resets both histograms before evaluating the two fast paths. The stub
check correctly uses the saved values. The sentry check samples the now-empty
histograms again, so it always receives zero and cannot account for the
period that just ended.

Use the saved period medians for the sentry check too. This matches the
other state transitions and ensures both decisions are based on the same
completed measurement period.

Fixes: cffce1a ("systrap: Revise slow-path enablement.")

Tested with:

make test TARGETS='//pkg/sentry/platform/systrap:systrap_test'

sentryOnStubOn saves the stub- and sentry-bound latency medians, then
resets both histograms. The sentry fast path check reads from the reset
histograms instead of using the saved values, so it always receives zero.
Consequently, it cannot disable the sentry fast path when that fast path
makes stub latency worse.

Pass the saved period medians to shouldDisableSentryFP, as already done
for shouldDisableStubFP and in the neighboring state transitions.

Fixes: cffce1a ("systrap: Revise slow-path enablement.")
@ayushr2

ayushr2 commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator Author

@konstantin-s-bogom yay or nay? Both Claude and Codex thought this is worth fixing. I will admit that this is AI driven. If slop, feel free to close.

@konstantin-s-bogom konstantin-s-bogom 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.

No, this is a good fix. It's a pretty bad typo, and could have been causing the sentry FP state to jump around. Thanks!

copybara-service Bot pushed a commit that referenced this pull request Aug 26, 2026
sentryOnStubOn records the current stub- and sentry-bound latency medians,
then resets both histograms before evaluating the two fast paths. The stub
check correctly uses the saved values. The sentry check samples the now-empty
histograms again, so it always receives zero and cannot account for the
period that just ended.

Use the saved period medians for the sentry check too. This matches the
other state transitions and ensures both decisions are based on the same
completed measurement period.

Fixes: cffce1a ("systrap: Revise slow-path enablement.")

Tested with:

    make test TARGETS='//pkg/sentry/platform/systrap:systrap_test'

FUTURE_COPYBARA_INTEGRATE_REVIEW=#14426 from ayushr2:codex/fix-systrap-fastpath-median 6172a4b
PiperOrigin-RevId: 971361249
copybara-service Bot pushed a commit that referenced this pull request Aug 26, 2026
sentryOnStubOn records the current stub- and sentry-bound latency medians,
then resets both histograms before evaluating the two fast paths. The stub
check correctly uses the saved values. The sentry check samples the now-empty
histograms again, so it always receives zero and cannot account for the
period that just ended.

Use the saved period medians for the sentry check too. This matches the
other state transitions and ensures both decisions are based on the same
completed measurement period.

Fixes: cffce1a ("systrap: Revise slow-path enablement.")

Tested with:

    make test TARGETS='//pkg/sentry/platform/systrap:systrap_test'

FUTURE_COPYBARA_INTEGRATE_REVIEW=#14426 from ayushr2:codex/fix-systrap-fastpath-median 6172a4b
PiperOrigin-RevId: 971361249
copybara-service Bot pushed a commit that referenced this pull request Aug 26, 2026
sentryOnStubOn records the current stub- and sentry-bound latency medians,
then resets both histograms before evaluating the two fast paths. The stub
check correctly uses the saved values. The sentry check samples the now-empty
histograms again, so it always receives zero and cannot account for the
period that just ended.

Use the saved period medians for the sentry check too. This matches the
other state transitions and ensures both decisions are based on the same
completed measurement period.

Fixes: cffce1a ("systrap: Revise slow-path enablement.")

Tested with:

    make test TARGETS='//pkg/sentry/platform/systrap:systrap_test'

FUTURE_COPYBARA_INTEGRATE_REVIEW=#14426 from ayushr2:codex/fix-systrap-fastpath-median 6172a4b
PiperOrigin-RevId: 971361249
copybara-service Bot pushed a commit that referenced this pull request Aug 26, 2026
sentryOnStubOn records the current stub- and sentry-bound latency medians,
then resets both histograms before evaluating the two fast paths. The stub
check correctly uses the saved values. The sentry check samples the now-empty
histograms again, so it always receives zero and cannot account for the
period that just ended.

Use the saved period medians for the sentry check too. This matches the
other state transitions and ensures both decisions are based on the same
completed measurement period.

Fixes: cffce1a ("systrap: Revise slow-path enablement.")

Tested with:

    make test TARGETS='//pkg/sentry/platform/systrap:systrap_test'

FUTURE_COPYBARA_INTEGRATE_REVIEW=#14426 from ayushr2:codex/fix-systrap-fastpath-median 6172a4b
PiperOrigin-RevId: 971361249
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants