9.4. 临时更改要使用的时钟源

有时因为时钟中已知问题,不使用系统主应用程序的最佳时钟。处理所有有问题的时钟后,系统就可以使用无法满足实时系统最低要求的硬件时钟。

对关键应用程序的要求因各系统而异。因此,每个应用程序的最佳时钟也会不同。有些应用程序依赖于时钟分辨率,提供可靠纳秒读的时钟更合适。最多读取时钟的应用程序往往可以从具有较小读成本的时钟中受益(读取请求和结果之间的时间)。

在这些情况下,可以覆盖内核所选时钟,只要您了解这个覆盖的副作用,并可创建一个环境,不会触发给定硬件时钟已知短语。

重要

内核自动选择最佳的时钟源。不建议覆盖所选时钟源,除非很理解了影响。

先决条件

  • 系统上的 root 权限。

流程

  1. 查看可用的时钟源。

    # cat /sys/devices/system/clocksource/clocksource0/available_clocksource
    tsc hpet acpi_pm

    在这个示例中,系统中的可用时钟源为 TSC、HPET 和 ACPI_PM。

  2. 将您要使用的时钟源名称写入 /sys/devices/system/clocksource/clocksource0/current_clocksource 文件。

    # echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource
    注意

    这个过程更改了当前正在使用的时钟源。系统重启时,会使用默认时钟。要使更改具有持久性,请参阅 进行持久性内核性能优化参数更改

验证步骤

  • 显示 current_clocksource 文件,以确保当前时钟源是指定的时钟源。

    # cat /sys/devices/system/clocksource/clocksource0/current_clocksource
    hpet

    在这个示例中,系统中的当前时钟源是 HPET。