タスクタイプ(TT)は、Linuxの代替CPUスケジューラです。
タスクタイプ(TT)スケジューラの目標は、動作に基づいてタスクタイプを検出し、タイプに基づいてスケジュールを制御することです。 5つのタイプがあります:
tasks.odsで説明と検出ルールを見つけます
タスクタイプの利点は、スケジューラがより制御を強化し、CPUで次に実行する最適なタスクを選択できるようにすることです。
TTは、vruntime計算でRTタスクを-20 PRIOに提供します。これにより、他のタスクよりもRTタスクが向上します。プリエンプションルールは、vruntimesが他のタイプよりも比較的少ないため、RTタスクが優先される純粋にHRRNです。ハードレベルのピッキングの代わりにHRRNを使用する理由は、プレエムを滑らかにし、飢starの可能性を防ぐためです。
CONFIG_SCHED_DEBUG=yでコンパイルする必要があります。 Tasks Information task_typeの出力にフィールドを追加しました。 ttdebug.shを参照して使用します。
使用例:
ttdebug.sh | grep -i realtime
watch -t "(ttdebug.sh | grep -i interactive)"
watch -t "(ttdebug.sh | egrep -i 'webco|firefox')"
注:タスクの種類は、動作に基づいて検出されます。したがって、ある時点でSystemDがリアルタイムのタスクのように動作し、長い睡眠をとった場合、タイプは目覚めてタイプが更新されるまでリアルタイムになります。ブートタイムのある時点で、リアルタイム、CPU_Bound、またはどのタイプのように振る舞ったため、誤ったタイプの多くの睡眠タスクが表示される場合があります。これらのタスクは長い間眠っているので、タイプを目覚めさせると、非常に高く評価されます。したがって、睡眠システムのプロセスの種類について心配しないでください。
s kernel.sched_tt_max_lifetime
デフォルトは22秒です。これは、彼らの寿命とvruntimeを正常化するためのタスクの最大寿命です。 Caculeのcacule_max_lifetimeに似ています。
kernel.sched_tt_rt_prioデフォルトは-20です。範囲[-20、19]。リアルタイムのタスクの優先順位が高すぎるため、リアルタイム以外のタイプのタスクが飢えている場合、リアルタイムタスクの優先順位を和らげることができます。 -20は最高で、19は最優先事項です。
kernel.sched_tt_interactive_prioデフォルトは-10です。範囲[-20、19]。
kernel.sched_tt_cpu_bound_prioデフォルトは-15です。範囲[-20、19]。
kernel.sched_tt_batch_prioデフォルトは19。範囲[-20、19]です。
kernel.sched_tt_balancer_opt
4つの値に設定できます。
実行時にバランサーオプションを変更できます。
kernel.sched_tt_lat_sens_enabledデフォルトは1です。レイテンシーセンシティブは、この期間中に着信タスクがより速く実行される場合に、しばらくの間(〜1ms)、CPU(タスクなし)の場合(〜1ms)キープします。遅延を減らしますが、消費電力が増加します。 Power Save Balancerが選択されている場合、このオプションには効果がありません(IE無効、= 0)。
kernel.sched_tt_dedicated_cpu_bound_enabledデフォルトは1です。このオプションは、CPUバインドタスクを現在のCPUに貼り付けて、キャッシュの局所性を強化します。 CPUには、専用のCPUバインドタスクが1つしかありません。
電報:https://t.me/tt_sched
ありがとう
ハマド