• Linus Torvalds's avatar
    Merge tag 'timers-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a941a034
    Linus Torvalds authored
    Pull timer updates from Thomas Gleixner:
     "Time and clocksource/clockevent related updates:
    
      Core changes:
    
       - Infrastructure to support per CPU "broadcast" devices for per CPU
         clockevent devices which stop in deep idle states. This allows us
         to utilize the more efficient architected timer on certain ARM SoCs
         for normal operation instead of permanentely using the slow to
         access SoC specific clockevent device.
    
       - Print the name of the broadcast/wakeup device in /proc/timer_list
    
       - Make the clocksource watchdog more robust against delays between
         reading the current active clocksource and the watchdog
         clocksource. Such delays can be caused by NMIs, SMIs and vCPU
         preemption.
    
         Handle this by reading the watchdog clocksource twice, i.e. before
         and after reading the current active clocksource. In case that the
         two watchdog reads shows an excessive time delta, the read sequence
         is repeated up to 3 times.
    
       - Improve the debug output and add a test module for the watchdog
         mechanism.
    
       - Reimplementation of the venerable time64_to_tm() function with a
         faster and significantly smaller version. Straight from the source,
         i.e. the author of the related research paper contributed this!
    
      Driver changes:
    
       - No new drivers, not even new device tree bindings!
    
       - Fixes, improvements and cleanups and all over the place"
    
    * tag 'timers-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
      time/kunit: Add missing MODULE_LICENSE()
      time: Improve performance of time64_to_tm()
      clockevents: Use list_move() instead of list_del()/list_add()
      clocksource: Print deviation in nanoseconds when a clocksource becomes unstable
      clocksource: Provide kernel module to test clocksource watchdog
      clocksource: Reduce clocksource-skew threshold
      clocksource: Limit number of CPUs checked for clock synchronization
      clocksource: Check per-CPU clock synchronization when marked unstable
      clocksource: Retry clock read if long delays detected
      clockevents: Add missing parameter documentation
      clocksource/drivers/timer-ti-dm: Drop unnecessary restore
      clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
      clocksource/drivers/arm_global_timer: Remove duplicated argument in arm_global_timer
      clocksource/drivers/arm_global_timer: Make symbol 'gt_clk_rate_change_nb' static
      arm: zynq: don't disable CONFIG_ARM_GLOBAL_TIMER due to CONFIG_CPU_FREQ anymore
      clocksource/drivers/arm_global_timer: Implement rate compensation whenever source clock changes
      clocksource/drivers/ingenic: Rename unreasonable array names
      clocksource/drivers/timer-ti-dm: Save and restore timer TIOCP_CFG
      clocksource/drivers/mediatek: Ack and disable interrupts on suspend
      clocksource/drivers/samsung_pwm: Constify source IO memory
      ...
    a941a034
Kconfig 5.12 KB