Linuxのプリエンプションモデル
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* Linuxのプリエンプションモデル [#a12f6fbf]
気が付いたら、色々な Preemption Model が設定できるように...
RTパッチは将来に向けてということで、[[調査が必要>Linux sp...
** Preemption Model の設定 [#m631697c]
linux-4.19 からメニュー位置が変更。
旧メニュー構成)
Kernel Features --->
Preemption Model
新メニュー構成)
General setup --->
Preemption Model
** Preemption Model [#h0ea4d5e]
linux-5.3 で CONFIG_PREEMPT_RT の導入
Introduce CONFIG_PREEMPT_RT as a clear sign that the RT ...
linux-5.12 で CONFIG_PREEMPT_DYNAMIC の導入~
CONFIG_PREEMPT_DYNAMIC の記載はない(以下はgitから)
CONFIG_PREEMPT_DYNAMIC is automatically selected by CONF...
the architecture provides the necessary support (CONFIG_...
CONFIG_GENERIC_ENTRY, and provide with __preempt_schedul...
__preempt_schedule_notrace_function()).
linux-5.14 で CONFIG_SCHED_CORE の導入~
CONFIG_SCHED_CORE の記載はない(以下はgitから)
Introduce the basic infrastructure to have a core wide r...
This relies on the rq->__lock order being in increasing ...
(inside a core). It is also constrained to SMT8 per lock...
SMT256 per preempt_count).
Luckily SMT8 is the max supported SMT count for Linux (M...
Power are known to have this).
~
~
以下は、kernel/Kconfig.preempt からの抜粋
** PREEMPT_NONE [#y5e982c6]
No Forced Preemption (Server)
This is the traditional Linux preemption model, geared t...
throughput. It will still provide good latencies most of...
time, but there are no guarantees and occasional longer ...
are possible.
Select this option if you are building a kernel for a se...
scientific/computation system, or if you want to maximiz...
raw processing power of the kernel, irrespective of sche...
latencies.
これは、スループットを対象とした従来のLinuxプリエンプショ...
サーバーまたは科学/計算システム用のカーネルを構築している...
** PREEMPT_VOLUNTARY [#yc0680f1]
Voluntary Kernel Preemption (Desktop)
This option reduces the latency of the kernel by adding ...
"explicit preemption points" to the kernel code. These new
preemption points have been selected to reduce the maximum
latency of rescheduling, providing faster application re...
at the cost of slightly lower throughput.
This allows reaction to interactive events by allowing a
low priority process to voluntarily preempt itself even ...
is in kernel mode executing a system call. This allows
applications to run more 'smoothly' even when the system...
under load.
Select this if you are building a kernel for a desktop s...
このオプションは、カーネルコードに「明示的なプリエンプシ...
これにより、優先度の低いプロセスが、システムコールを実行...
デスクトップシステムのカーネルを構築する場合は、これを選...
** PREEMPT [#t5ac064d]
Preemptible Kernel (Low-Latency Desktop)
This option reduces the latency of the kernel by making
all kernel code (that is not executing in a critical sec...
preemptible. This allows reaction to interactive events...
permitting a low priority process to be preempted involu...
even if it is in kernel mode executing a system call and...
otherwise not be about to reach a natural preemption poi...
This allows applications to run more 'smoothly' even whe...
system is under load, at the cost of slightly lower thro...
and a slight runtime overhead to kernel code.
Select this if you are building a kernel for a desktop or
embedded system with latency requirements in the millise...
range.
このオプションは、すべてのカーネルコード(クリティカルセ...
ミリ秒の範囲の遅延要件を持つデスクトップまたは組み込みシ...
** PREEMPT_RT [#p0432fcb]
Fully Preemptible Kernel (Real-Time)
This option turns the kernel into a real-time kernel by ...
various locking primitives (spinlocks, rwlocks, etc.) with
preemptible priority-inheritance aware variants, enforcing
interrupt threading and introducing mechanisms to break ...
non-preemptible sections. This makes the kernel, except ...
low level and critical code paths (entry code, scheduler...
level interrupt handling) fully preemptible and brings m...
execution contexts under scheduler control.
Select this if you are building a kernel for systems which
require real-time guarantees.
このオプションは、さまざまなロックプリミティブ(spinlocks...
リアルタイム保証が必要なシステムのカーネルを構築する場合...
** PREEMPT_DYNAMIC [#hb208f0e]
Preemption behaviour defined on boot
This option allows to define the preemption model on the...
command line parameter and thus override the default pre...
model defined during compile time.
The feature is primarily interesting for Linux distribut...
provide a pre-built kernel binary to reduce the number o...
flavors they offer while still offering different usecas...
The runtime overhead is negligible with HAVE_STATIC_CALL...
but if runtime patching is not available for the specifi...
then the potential overhead should be considered.
Interesting if you want the same pre-built kernel should...
both Server and Desktop workloads.
このオプションを使用すると、カーネルコマンドラインパラメ...
この機能は、さまざまなユースケースを提供しながら、提供す...
HAVE_STATIC_CALL_INLINEを有効にすると、ランタイムオーバー...
同じビルド済みカーネルが必要な場合は、サーバーとデスクト...
** SCHED_CORE [#l02f7c66]
Core Scheduling for SMT
This option permits Core Scheduling, a means of coordina...
selection across SMT siblings. When enabled -- see
prctl(PR_SCHED_CORE) -- task selection ensures that all ...
will execute a task from the same 'core group', forcing ...
matching task is found.
Use of this feature includes:
- mitigation of some (not all) SMT side channels;
- limiting SMT interference to improve determinism and/...
SCHED_CORE is default disabled. When it is enabled and u...
which is the likely usage by Linux distributions, there ...
be no measurable impact on performance.
このオプションにより、SMT兄弟間でタスクを調整して選択する...
この機能の使用には次のものが含まれます。
-一部(すべてではない)のSMTサイドチャネルの緩和。
-決定論および/またはパフォーマンスを改善するためにSMT干渉...
SCHED_COREはデフォルトで無効になっています。 Linuxディス...
~
※ SMT:Simultaneous Multi-Threading(同時マルチスレッディン...
SMT兄弟って、おぃ...~
#htmlinsert(amazon_pc.html);
終了行:
* Linuxのプリエンプションモデル [#a12f6fbf]
気が付いたら、色々な Preemption Model が設定できるように...
RTパッチは将来に向けてということで、[[調査が必要>Linux sp...
** Preemption Model の設定 [#m631697c]
linux-4.19 からメニュー位置が変更。
旧メニュー構成)
Kernel Features --->
Preemption Model
新メニュー構成)
General setup --->
Preemption Model
** Preemption Model [#h0ea4d5e]
linux-5.3 で CONFIG_PREEMPT_RT の導入
Introduce CONFIG_PREEMPT_RT as a clear sign that the RT ...
linux-5.12 で CONFIG_PREEMPT_DYNAMIC の導入~
CONFIG_PREEMPT_DYNAMIC の記載はない(以下はgitから)
CONFIG_PREEMPT_DYNAMIC is automatically selected by CONF...
the architecture provides the necessary support (CONFIG_...
CONFIG_GENERIC_ENTRY, and provide with __preempt_schedul...
__preempt_schedule_notrace_function()).
linux-5.14 で CONFIG_SCHED_CORE の導入~
CONFIG_SCHED_CORE の記載はない(以下はgitから)
Introduce the basic infrastructure to have a core wide r...
This relies on the rq->__lock order being in increasing ...
(inside a core). It is also constrained to SMT8 per lock...
SMT256 per preempt_count).
Luckily SMT8 is the max supported SMT count for Linux (M...
Power are known to have this).
~
~
以下は、kernel/Kconfig.preempt からの抜粋
** PREEMPT_NONE [#y5e982c6]
No Forced Preemption (Server)
This is the traditional Linux preemption model, geared t...
throughput. It will still provide good latencies most of...
time, but there are no guarantees and occasional longer ...
are possible.
Select this option if you are building a kernel for a se...
scientific/computation system, or if you want to maximiz...
raw processing power of the kernel, irrespective of sche...
latencies.
これは、スループットを対象とした従来のLinuxプリエンプショ...
サーバーまたは科学/計算システム用のカーネルを構築している...
** PREEMPT_VOLUNTARY [#yc0680f1]
Voluntary Kernel Preemption (Desktop)
This option reduces the latency of the kernel by adding ...
"explicit preemption points" to the kernel code. These new
preemption points have been selected to reduce the maximum
latency of rescheduling, providing faster application re...
at the cost of slightly lower throughput.
This allows reaction to interactive events by allowing a
low priority process to voluntarily preempt itself even ...
is in kernel mode executing a system call. This allows
applications to run more 'smoothly' even when the system...
under load.
Select this if you are building a kernel for a desktop s...
このオプションは、カーネルコードに「明示的なプリエンプシ...
これにより、優先度の低いプロセスが、システムコールを実行...
デスクトップシステムのカーネルを構築する場合は、これを選...
** PREEMPT [#t5ac064d]
Preemptible Kernel (Low-Latency Desktop)
This option reduces the latency of the kernel by making
all kernel code (that is not executing in a critical sec...
preemptible. This allows reaction to interactive events...
permitting a low priority process to be preempted involu...
even if it is in kernel mode executing a system call and...
otherwise not be about to reach a natural preemption poi...
This allows applications to run more 'smoothly' even whe...
system is under load, at the cost of slightly lower thro...
and a slight runtime overhead to kernel code.
Select this if you are building a kernel for a desktop or
embedded system with latency requirements in the millise...
range.
このオプションは、すべてのカーネルコード(クリティカルセ...
ミリ秒の範囲の遅延要件を持つデスクトップまたは組み込みシ...
** PREEMPT_RT [#p0432fcb]
Fully Preemptible Kernel (Real-Time)
This option turns the kernel into a real-time kernel by ...
various locking primitives (spinlocks, rwlocks, etc.) with
preemptible priority-inheritance aware variants, enforcing
interrupt threading and introducing mechanisms to break ...
non-preemptible sections. This makes the kernel, except ...
low level and critical code paths (entry code, scheduler...
level interrupt handling) fully preemptible and brings m...
execution contexts under scheduler control.
Select this if you are building a kernel for systems which
require real-time guarantees.
このオプションは、さまざまなロックプリミティブ(spinlocks...
リアルタイム保証が必要なシステムのカーネルを構築する場合...
** PREEMPT_DYNAMIC [#hb208f0e]
Preemption behaviour defined on boot
This option allows to define the preemption model on the...
command line parameter and thus override the default pre...
model defined during compile time.
The feature is primarily interesting for Linux distribut...
provide a pre-built kernel binary to reduce the number o...
flavors they offer while still offering different usecas...
The runtime overhead is negligible with HAVE_STATIC_CALL...
but if runtime patching is not available for the specifi...
then the potential overhead should be considered.
Interesting if you want the same pre-built kernel should...
both Server and Desktop workloads.
このオプションを使用すると、カーネルコマンドラインパラメ...
この機能は、さまざまなユースケースを提供しながら、提供す...
HAVE_STATIC_CALL_INLINEを有効にすると、ランタイムオーバー...
同じビルド済みカーネルが必要な場合は、サーバーとデスクト...
** SCHED_CORE [#l02f7c66]
Core Scheduling for SMT
This option permits Core Scheduling, a means of coordina...
selection across SMT siblings. When enabled -- see
prctl(PR_SCHED_CORE) -- task selection ensures that all ...
will execute a task from the same 'core group', forcing ...
matching task is found.
Use of this feature includes:
- mitigation of some (not all) SMT side channels;
- limiting SMT interference to improve determinism and/...
SCHED_CORE is default disabled. When it is enabled and u...
which is the likely usage by Linux distributions, there ...
be no measurable impact on performance.
このオプションにより、SMT兄弟間でタスクを調整して選択する...
この機能の使用には次のものが含まれます。
-一部(すべてではない)のSMTサイドチャネルの緩和。
-決定論および/またはパフォーマンスを改善するためにSMT干渉...
SCHED_COREはデフォルトで無効になっています。 Linuxディス...
~
※ SMT:Simultaneous Multi-Threading(同時マルチスレッディン...
SMT兄弟って、おぃ...~
#htmlinsert(amazon_pc.html);
ページ名: