2.6. プロファイルのカスタマイズに使用するビルトイン関数
TuneD プロファイルのビルトイン関数を使用すると、プロファイルがアクティブ化されたときに実行時に動的に展開できます。TuneD 変数とビルトイン関数を組み合わせて使用することで、プロファイル内の値を動的に変更および処理できます。さらに、カスタム Python 関数をプラグインとして作成および統合することで、カスタム関数を使用して TuneD を拡張できます。
- ビルトイン関数を起動するための構文
${f:function_name:argument_1:argument_2}
${f:function_name:argument_1:argument_2}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロファイルと tuned.conf ファイルが配置されているディレクトリーパスを取得するには、次の構文を必要とする
PROFILE_DIR
変数を使用します。${i:PROFILE_DIR}
${i:PROFILE_DIR}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ビルトイン関数を使用して CPU コアを分離する例
[variables] non_isolated_cores=0,3-5 [bootloader] cmdline=isolcpus=${f:cpulist_invert:${non_isolated_cores}}
[variables] non_isolated_cores=0,3-5 [bootloader] cmdline=isolcpus=${f:cpulist_invert:${non_isolated_cores}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
${non_isolated_cores}
変数は0,3-5
に展開されます。cpulist_invert
関数は CPU リストを反転します。6 つの CPU を搭載したシステムでは、0,3-5
が1,2
に反転され、カーネルはisolcpus=1,2
オプションで起動します。
関数名 | 説明 |
---|---|
assertion | 2 つの引数を比較します。一致しない場合、関数は最初の引数からテキストをログに記録し、プロファイルの読み込みを中止します。 |
assertion_non_equal | 2 つの引数を比較します。2 つの引数が一致する場合、関数は最初の引数からテキストをログに記録し、プロファイルの読み込みを中止します。 |
calc_isolated_cores | 分離されたコアを計算して返します。引数は、ハウスキーピング用に予約するソケットあたりのコア数を指定します。指定しない場合は、ソケットごとに 1 つのコアがハウスキーピング用に予約され、残りは分離されます。 |
check_net_queue_count | ユーザーがネットデバイスのキューの数を指定したかどうかを確認します。指定していない場合、ハウスキーピング CPU の数が返されます。 |
cpuinfo_check | /proc/cpuinfo に対して正規表現をチェックします。次の形式の引数を受け入れます: REGEX1、STR1、REGEX2、STR2、…[, STR_FALLBACK]。REGEX1 が /proc/cpuinfo 内の何かと一致する場合、それは STR1 に展開されます。REGEX2 が一致する場合、それは STR2 に展開されます。最初の一致で停止します。一致する正規表現がない場合は、STR_FALLBACK に展開されます。フォールバックが指定されていない場合は、空の文字列に展開されます。 |
cpulist2devs | CPU リストをデバイス文字列に変換します。 |
cpulist2hex | CPU リストを 16 進数の CPU マスクに変換します。 |
cpulist2hex_invert | CPU リストを 16 進数の CPU マスクに変換し、反転します。 |
cpulist_invert | 補完するために CPU のリストを反転します。たとえば、4 つの CPU (0-3) を搭載したシステムでは、リスト 0,2,3 の反転は 1 になります。 |
cpulist_online | リストからの CPU がオンラインかどうかをチェックします。オンライン CPU のみを含むリストを返します。 |
cpulist_pack | CPU リストを、1,2,3,5 の形式で 1-3,5 に圧縮します。 |
cpulist_present | リストに CPU が存在するかどうかを確認します。存在する CPU のみを含むリストを返します。 |
cpulist_unpack | 1-3,4 形式の CPU リストを、1,2,3,4 に展開します。 |
exec | プロセスを実行し、その出力を返します。 |
hex2cpulist | 16 進数の CPU マスクを CPU リストに変換します。 |
intel_recommended_pstate |
プロセッサーコード名をチェックし、推奨される |
iscpu_check |
|
package2cpus | パッケージ (ソケット) の CPU デバイスリストを提供します。 |
package2uncores | パッケージ (ソケット) の非コアデバイスリストを提供します。 |
regex_search_ternary |
正規表現を使用した三項演算子。STR1、REGEX、STR2、STR3 の形式の引数を受け取ります。REGEX が STR1 と一致する場合 ( |
log | 引数の連結を展開し、結果をログに記録します。デバッグに役立ちます。 |
kb2s | KB をディスクセクターに変換します。 |
s2kb | ディスクセクターを KB に変換します。 |
strip | 渡されたすべての引数から文字列を作成し、最初と最後の空白の両方を削除します。 |
virt_check | TuneD が仮想マシンまたはベアメタルのどちらで実行しているかを確認します。仮想マシン内では、この関数が最初の引数を返します。ベアメタルでは、この関数は、エラーが発生した場合でも 2 番目の引数を返します。 |