On Mon, Mar 02, 2026 at 02:13:16PM +0100, Tomas Glozar wrote: > Add an option called TIMERLAT_ALIGN to osnoise/options, together with a > corresponding setting osnoise/timerlat_align_us. > > This option sets the alignment of wakeup times between different > timerlat threads, similarly to cyclictest's -A/--aligned option. If > TIMERLAT_ALIGN is set, the first thread that reaches the first cycle > records its first wake-up time. Each following thread sets its first > wake-up time to a fixed offset from the recorded time, and increments > it by the same offset. > > Example: > > osnoise/timerlat_period is set to 1000, osnoise/timerlat_align_us is > set to 20. There are four threads, on CPUs 1 to 4. > > - CPU 4 enters first cycle first. The current time is 20000us, so > the wake-up of the first cycle is set to 21000us. This time is recorded. > - CPU 2 enter first cycle next. It reads the recorded time, increments > it to 21020us, and uses this value as its own wake-up time for the first > cycle. > - CPU 3 enters first cycle next. It reads the recorded time, increments > it to 21040 us, and uses the value as its own wake-up time. > - CPU 1 proceeds analogically. > > In each next cycle, the wake-up time (called "absolute period" in > timerlat code) is incremented by the (relative) period of 1000us. Thus, > the wake-ups in the following cycles (provided the times are reached and > not in the past) will be as follows: > > CPU 1 CPU 2 CPU 3 CPU 4 > 21080us 21020us 21040us 21000us > 22080us 22020us 22040us 22000us > ... ... ... ... >
Reviewed-by: Wander Lairson Costa <[email protected]>
