Commit 3b4128b9f374 for kernel

commit 3b4128b9f374b4219eb716f4ad8a307bc7eb3d84
Merge: b0239dd67230 4fa377c19e11
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Aug 18 16:23:56 2026 -0700

    Merge tag 'timers-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull timer and timekeeping core updates from Thomas Gleixner:

     - Fix a subtly inconsistency in the timekeeping code, which fails to
       account for the monotonicity adjustment in ntp_error.

       For small changes of the clocksource multiplicator (+/-1) which are
       typically used by the NTP PLL this is hard to observe. But for larger
       adjustments, e.g. caused by a direct frequency setting through
       adjtimex() the one-time uncompensated offset is significant.

       Cure this by adjusting ntp_error with the resulting offset so that
       the discrepancy is smoothed away over time

     - Make tick length calculations correct in NTP.

       The timekeeping core takes the quantisation of the clocksource into
       account when calculating the tick length to compensate for the
       deviation of the nominal NTP_INTERVAL_LENGTH.

       While timekeeping gets this right, NTP is not aware of that, which
       means it operates on the nominal value and not on the actual value
       which is determined by the clock source frequency. The rounding of a
       coarse clocksource like the ACPI PM timer results in a +127 PPM
       deviation.

       Cure this by exposing the deviation to the NTP code so that it can
       operate on the same data as the timekeeping core. This is purely
       kernel internal. User space still sees the nominal tick lenght via
       adjtimex().

     - The accuracy of the NTP adjustments is fairly approximate as the code
       assumes that the invocations are precisely in NTP interval frequency
       ticks and the final adjustment can over and under-run.

       Cure this by adjusting ntp_error by the intended skew on each tick to
       achieve the desired rate.

     - Handle the two competing skews of time offset and time adjustment
       correctly by calculating the conflict portion between the skews and
       adjusting both accordingly.

     - A set of updates and improvements for the selftests

     - The usual small fixes and improvements all over the place

    * tag 'timers-core-2026-08-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (58 commits)
      selftests: timers: nsleep-lat: Check all calls to clock_nanosleep() and clock_gettime()
      selftests: timers: nsleep-lat: Reuse kselftest error numbers
      selftests: timers: nsleep-lat: Explicitly list the tested clocks
      selftests: timers: nsleep-lat: Use NSEC_PER_MSEC define for unreasonable latency
      selftests: timers: nanosleep: Report each test separately
      selftests: timers: nanosleep: Explicitly handle timer_delete() failure
      selftests: timers: nanosleep: Move all single clock tests out of the loop in main()
      selftests: timers: nanosleep: Reuse kselftest error numbers
      selftests: timers: nanosleep: Explicitly list the tested clocks
      selftests: timers: nanosleep: Drop output alignment
      selftests: timers: Use clock_name() and constants from clock-helpers.h
      selftests: Add clock-helpers.h
      timer_list: Use ktime_t over nanoseconds
      timer_list: Use standard 'long long' format placeholders
      hrtimer: Add a lockdep assertion to hrtimer_update_base()
      timekeeping: Use u32 for clock_was_set_seq
      timekeeping: Rename clockid_aux_valid() to clockid_is_aux_clock()
      hrtimer: Account nr_retries on recovered interrupt retries
      timers/itimer: Zero-init old itimerval before copy to userspace
      nohz: Replace dead select with choice default
      ...