• Linus Torvalds's avatar
    Merge tag 'timers-core-2020-01-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e279160f
    Linus Torvalds authored
    Pull timer updates from Thomas Gleixner:
     "The timekeeping and timers departement provides:
    
       - Time namespace support:
    
         If a container migrates from one host to another then it expects
         that clocks based on MONOTONIC and BOOTTIME are not subject to
         disruption. Due to different boot time and non-suspended runtime
         these clocks can differ significantly on two hosts, in the worst
         case time goes backwards which is a violation of the POSIX
         requirements.
    
         The time namespace addresses this problem. It allows to set offsets
         for clock MONOTONIC and BOOTTIME once after creation and before
         tasks are associated with the namespace. These offsets are taken
         into account by timers and timekeeping including the VDSO.
    
         Offsets for wall clock based clocks (REALTIME/TAI) are not provided
         by this mechanism. While in theory possible, the overhead and code
         complexity would be immense and not justified by the esoteric
         potential use cases which were discussed at Plumbers '18.
    
         The overhead for tasks in the root namespace (ie where host time
         offsets = 0) is in the noise and great effort was made to ensure
         that especially in the VDSO. If time namespace is disabled in the
         kernel configuration the code is compiled out.
    
         Kudos to Andrei Vagin and Dmitry Sofanov who implemented this
         feature and kept on for more than a year addressing review
         comments, finding better solutions. A pleasant experience.
    
       - Overhaul of the alarmtimer device dependency handling to ensure
         that the init/suspend/resume ordering is correct.
    
       - A new clocksource/event driver for Microchip PIT64
    
       - Suspend/resume support for the Hyper-V clocksource
    
       - The usual pile of fixes, updates and improvements mostly in the
         driver code"
    
    * tag 'timers-core-2020-01-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)
      alarmtimer: Make alarmtimer_get_rtcdev() a stub when CONFIG_RTC_CLASS=n
      alarmtimer: Use wakeup source from alarmtimer platform device
      alarmtimer: Make alarmtimer platform device child of RTC device
      alarmtimer: Update alarmtimer_get_rtcdev() docs to reflect reality
      hrtimer: Add missing sparse annotation for __run_timer()
      lib/vdso: Only read hrtimer_res when needed in __cvdso_clock_getres()
      MIPS: vdso: Define BUILD_VDSO32 when building a 32bit kernel
      clocksource/drivers/hyper-v: Set TSC clocksource as default w/ InvariantTSC
      clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources
      clocksource/drivers/timer-microchip-pit64b: Fix sparse warning
      clocksource/drivers/exynos_mct: Rename Exynos to lowercase
      clocksource/drivers/timer-ti-dm: Fix uninitialized pointer access
      clocksource/drivers/timer-ti-dm: Switch to platform_get_irq
      clocksource/drivers/timer-ti-dm: Convert to devm_platform_ioremap_resource
      clocksource/drivers/em_sti: Fix variable declaration in em_sti_probe
      clocksource/drivers/em_sti: Convert to devm_platform_ioremap_resource
      clocksource/drivers/bcm2835_timer: Fix memory leak of timer
      clocksource/drivers/cadence-ttc: Use ttc driver as platform driver
      clocksource/drivers/timer-microchip-pit64b: Add Microchip PIT64B support
      clocksource/drivers/hyper-v: Reserve PAGE_SIZE space for tsc page
      ...
    e279160f
fork.c 73.8 KB