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 (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.
alarmtimer: Make alarmtimer_get_rtcdev() a stub when CONFIG_RTC_CLASS=n

The stubbed version of alarmtimer_get_rtcdev() is not exported.
so this won't work if this function is used in a module when
CONFIG_RTC_CLASS=n.

Move the stub function to the header file and make it inline so that
callers don't have to worry about linking against this symbol.

rtcdev isn't used outside of this ifdef so it's not required to be
redefined to NULL. Drop that while touching this area.

Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20200124055849.154411-4-swboyd@chromium.org
2 files changed