chrt ポリシーを設定できません。パラメータが無効です。

chrt ポリシーを設定できません。パラメータが無効です。

これはFedoraとGarudaの両方で発生します。以下はエラーメッセージの例です。

$ sysctl kernel/sched_deadline_period_min_us kernel/sched_rt_period_us kernel/sched_rt_runtime_us
kernel.sched_deadline_period_min_us = -1
kernel.sched_rt_period_us = -1
kernel.sched_rt_runtime_us = -1
$ chrt --deadline -P 50000 --pid 0 2236118
chrt: failed to set pid 2236118's policy: Invalid argument
$ sysctl kernel/sched_deadline_period_min_us kernel/sched_rt_period_us kernel/sched_rt_runtime_us
kernel.sched_deadline_period_min_us = -1
kernel.sched_rt_period_us = -1
kernel.sched_rt_runtime_us = -1
# chrt -d -P 50000 0 yes
chrt: failed to set pid 0's policy: Invalid argument

ご覧のとおり、解決策が見つかりました。ここ動作しません。サービスcgconfigが存在しないため、2番目の答えは重要ではありません。両方の通話に対して権限を実行し
ましたstraceが、それも問題ではありませんでした。すべて失敗しましたsched_setattr

sched_setattr(2236118, {size=56, sched_policy=SCHED_DEADLINE, sched_flags=0, sched_nice=0, sched_priority=0, sched_runtime=50000, sched_deadline=50000, sched_period=50000, sched_util_min=0, sched_util_max=0}, 0) =-1 EINVAL (Invalid argument)
sched_setattr(0, {size=56, sched_policy=SCHED_DEADLINE, sched_flags=0, sched_nice=0, sched_priority=0, sched_runtime=50000, sched_deadline=50000, sched_period=50000, sched_util_min=0, sched_util_max=0}, 0) = -1 EINVAL (Invalid argument)

私も確認しましたsched_setattr のマニュアルページ。これにより、すべてのパラメータが許可されます。

chrtバージョン:

chrt from util-linux 2.38
chrt from util-linux 2.37.4

答え1

50に設定するとkernel.sched_deadline_period_min_us問題が解決しました。

関連情報