Voluntary Kernel Preemption

http://kerneltrap.org/node/3440/ より

要約すると,

  • 2.4系に比べて,2.6系カーネルはリアルタイム性が劣る.レイテンシは最悪 50msecになることもある.
  • Voluntary Kernel Preemption を有効にすると,2.4系よりもリアルタイム性が良くなる.レイテンシは1msec程度になる.
  • 使い方も簡単.
    • CONFIG_VOLUNTARY_PREEMPT と CONFIG_PREEMPT を有効にしてカーネルをビルド
    • /proc 以下のファイル経由で,動的に機能をon/offする.
$ echo 1 > /proc/sys/kernel/voluntary_preemption
$ echo 1 > /proc/sys/kernel/kernel_preemption
    • 設定値とその効果は以下の通り.
kernel_preemption voluntary_preemption
0 0 stock 2.6 kernel
0 1 voluntary kernel preemption
1 0 preempt kernel
1 1 preemptible kernel enhanced with additional lock-breaks