Re: [PATCH v3 3/5] perf: Allow adding fixed random jitter to the alternate sampling period
From: Peter Zijlstra
Date: Tue Mar 11 2025 - 07:37:47 EST
On Tue, Mar 11, 2025 at 12:31:29PM +0100, Peter Zijlstra wrote:
> + sample_period = hwc->sample_period_base;
> + if (hwc->state & PERF_HES_HF_RAND) {
> + u64 rand = 1 << event->attr.hf_sample_rand;
> + sample_period -= rand / 2;
> + sample_period += prandom_u32_state(&perf_rand) & (rand - 1);
> + }
> + if (hwc->state & PERF_HES_HF_ON) {
> + u64 hf_sample_period = event->attr.hf_sample_period;
> +
> + if (sample_period < hf_sample_period) {
> + hwc->state &= ~PERF_HES_HF_ON;
> + goto set_period;
> + }
> +
> + if (!(hwc->state & PERF_HES_HF_SAMPLE)) {
> + hwc->sample_period -= hf_sample_period;
> + hwc->state |= PERF_HES_HF_SAMPLE;
> + } else {
> + hwc->sample_period = hf_sample_period;
> + hwc->state &= ~PERF_HES_HF_SAMPLE;
and obviously this should be the local sample_period modified above, not
the hwc one.
> + }
> + }
> +set_period:
> + hwc->sample_period = sample_period;