• Linus Torvalds's avatar
    Merge tag 'timers-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 560b8030
    Linus Torvalds authored
    Pull timer updates from Thomas Gleixner:
     "Updates for timekeeping, timers and clockevent/source drivers:
    
      Core:
    
       - Yet another round of improvements to make the clocksource watchdog
         more robust:
    
           - Relax the clocksource-watchdog skew criteria to match the NTP
             criteria.
    
           - Temporarily skip the watchdog when high memory latencies are
             detected which can lead to false-positives.
    
           - Provide an option to enable TSC skew detection even on systems
             where TSC is marked as reliable.
    
         Sigh!
    
       - Initialize the restart block in the nanosleep syscalls to be
         directed to the no restart function instead of doing a partial
         setup on entry.
    
         This prevents an erroneous restart_syscall() invocation from
         corrupting user space data. While such a situation is clearly a
         user space bug, preventing this is a correctness issue and caters
         to the least suprise principle.
    
       - Ignore the hrtimer slack for realtime tasks in schedule_hrtimeout()
         to align it with the nanosleep semantics.
    
      Drivers:
    
       - The obligatory new driver bindings for Mediatek, Rockchip and
         RISC-V variants.
    
       - Add support for the C3STOP misfeature to the RISC-V timer to handle
         the case where the timer stops in deeper idle state.
    
       - Set up a static key in the RISC-V timer correctly before first use.
    
       - The usual small improvements and fixes all over the place"
    
    * tag 'timers-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
      clocksource/drivers/timer-sun4i: Add CLOCK_EVT_FEAT_DYNIRQ
      clocksource/drivers/em_sti: Mark driver as non-removable
      clocksource/drivers/sh_tmu: Mark driver as non-removable
      clocksource/drivers/riscv: Patch riscv_clock_next_event() jump before first use
      clocksource/drivers/timer-microchip-pit64b: Add delay timer
      clocksource/drivers/timer-microchip-pit64b: Select driver only on ARM
      dt-bindings: timer: sifive,clint: add comaptibles for T-Head's C9xx
      dt-bindings: timer: mediatek,mtk-timer: add MT8365
      clocksource/drivers/riscv: Get rid of clocksource_arch_init() callback
      clocksource/drivers/sh_cmt: Mark driver as non-removable
      clocksource/drivers/timer-microchip-pit64b: Drop obsolete dependency on COMPILE_TEST
      clocksource/drivers/riscv: Increase the clock source rating
      clocksource/drivers/timer-riscv: Set CLOCK_EVT_FEAT_C3STOP based on DT
      dt-bindings: timer: Add bindings for the RISC-V timer device
      RISC-V: time: initialize hrtimer based broadcast clock event device
      dt-bindings: timer: rk-timer: Add rktimer for rv1126
      time/debug: Fix memory leak with using debugfs_lookup()
      clocksource: Enable TSC watchdog checking of HPET and PMTMR only when requested
      posix-timers: Use atomic64_try_cmpxchg() in __update_gt_cputime()
      clocksource: Verify HPET and PMTMR when TSC unverified
      ...
    560b8030
tsc.c 41.5 KB