システムのクロックソースを確認するには?

システムのクロックソースを確認するには?

カーネルコードに応じて、タイミングはクロックソースを jiffies に初期化します。

/*
 * timekeeping_init - Initializes the clocksource and common timekeeping values
 */
void __init timekeeping_init(void)
{
...
clock = clocksource_default_clock();
...
}

struct clocksource * __init __weak clocksource_default_clock(void)
{
    return &clocksource_jiffies;
}

しかし、新しいクロックソースが検出されると、タイミングがそれを置き換えるとも言われます。

/**
 * timekeeping_notify - Install a new clock source
 * @clock:      pointer to the clock source
 *
 * This function is called from clocksource.c after a new, better clock
 * source has been registered. The caller holds the clocksource_mutex.
 */

「date」コマンドを入力すると、最終的にクロックソースからシステム時間を取得することがわかりました。私が使用しているクロックソースが何であるかを知りたいです。早すぎる?

ベストアンサー1

見つけました。

クロックソースは次のパスにあります。

/sys/devices/system/clocksource/clocksource0

図のように:

-r--r--r--. 1 root root 4096 Jul 30 16:24 available_clocksource
-rw-r--r--. 1 root root 4096 Jul 30 16:32 current_clocksource
drwxr-xr-x. 2 root root    0 Jul 30 16:24 power
lrwxrwxrwx. 1 root root    0 Jul 28 11:40 subsystem -> ../../../../bus/clocksource
-rw-r--r--. 1 root root 4096 Jul 28 11:40 uevent
--w-------. 1 root root 4096 Jul 30 16:24 unbind_clocksource

available_clocksource利用可能なすべてのクロックソースを表示します。

current_clocksource現在システムで使用されているクロックソースを表示します。

echo xxx > current_clocksource現在のクロックソースを変更するために使用します(jiffiesデフォルトのクロックソースですが、存在available_clocksourceしませんが設定できません。システムが高解像度ではないクロックソースの設定を許可していないようです)。

おすすめ記事