adjtimexを使用して11分でカーネルモードの状態を確認する

adjtimexを使用して11分でカーネルモードの状態を確認する

CONFIG_RTC_SYSTOHC私は11分カーネルモードをオンにしたくないので、11分カーネルモードなしでカーネルがコンパイルされたDebian Busterシステムを持っています。しかし、この変更が実際に機能していることを確認したかったです。

statusだからコマンド出力のフィールドを確認しましたadjtimex --print。このstatusフィールドは24577またはです0b110000000000001

ここのマニュアルページによると -https://linux.die.net/man/8/adjtimex、ここによると、フィールド64のビットstatusは次のとおりです。not sethttps://access.redhat.com/solutions/55432オンになっていることを示します11-minute mode

CONFIG_RTC_SYSTOHCこれはasを使用してカーネルをコンパイルするときに期待したものと矛盾しますnot set。 11分モードが実際にオフになっているのか、出力がadjtimex誤って解釈されているのか、どうすれば確認できますか?

ベストアンサー1

(この回答を読者が持つことができる混乱を取り除くために:Linuxが実行されているとき(通常)2つの時計があります。「基本」時計は通常CPUベースのシステム時計です。他の時計は永久ハードウェア時計です。 (RTC))。システムがシャットダウンすると、システム時計の時間が失われ、永久ハードウェア時計だけが正しい壁時計時間を維持します。)

このフィールドのビットのデフォルトの意味64は、「システムクロックがNTPまたは他のタイムソースによって同期されるかどうか」です。 11分モードはこれと密接に結合されていました。システムクロックが同期している場合、RTCは11分ごとに更新されます。statusadjtimex

11分ごとにシステムクロックからRTCへの転送を無効にするオプションがCONFIG_RTC_SYSTOHC後で追加されました。

無効にすると、CONFIG_RTC_SYSTOHCシステムクロック同期とRTC 11分アップデート間の接続が失われます。関連カーネルのソースコードを見ることができます。このsync_rtc_clock()機能は Debian Buster の標準 4.19.xx カーネルにあります。カーネル/時間/ntp.c ライン #532CONFIG_RTC_SYSTOHC設定しないと、関数が何もせずに早く返されることがわかります。

static void sync_rtc_clock(void)
{
    unsigned long target_nsec;
    struct timespec64 adjust, now;
    int rc;

    if (!IS_ENABLED(CONFIG_RTC_SYSTOHC))   <--- If CONFIG_RTC_SYSTOHC is not enabled,
        return;                           <--- return immediately.

    ktime_get_real_ts64(&now);

    adjust = now;
    if (persistent_clock_is_local)
        adjust.tv_sec -= (sys_tz.tz_minuteswest * 60);

    /*
     * The current RTC in use will provide the target_nsec it wants to be
     * called at, and does rtc_tv_nsec_ok internally.
     */
    rc = rtc_set_ntp_time(adjust, &target_nsec);
    if (rc == -ENODEV)
        return;

    sched_sync_hw_clock(now, target_nsec, rc);
}

つまり、効果的に無効にすると、何もしCONFIG_RTC_SYSTOHCませ11-minute modeん。

より実験的には、カーネルプロファイリングツールを使用して、この関数を11分の適切な倍数で監視し、rtc_set_time()呼び出しの頻度を確認できます。答えが0番の場合、ハードウェアRTCクロックが11分モードに調整されていないことがわかります。それでも、他の何かを通して

おすすめ記事