takobozu
takobozu
buildrootを使って色々なボード用のディストリを作ってます。

マイルーム

マイルームは公開されていません

レビュー/コメント

レビュー/コメントはありません

カレンダー

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最新のレス

日記
製品レビュー/コメント

製品レビュー/コメントへのレスはありません

お気に入り製品

お気に入り製品はありません

お気に入りユーザー

お気にいられユーザー

日記

buildrootでupnpレンダラー64bit版 調整篇3

このエントリーをはてなブックマークに追加
2018年01月03日

どうやってcpuアフィニティを調べるかというと
例えば upmpdcliがどのcpuを使っているかを調べるには

taskset -p `pgrep upmpdcli`

本当はps -eo cmd,psrとかやると楽なんだが、busyboxにある
psは-e,psrが使えない。だからやむなく上記のようにして調べた。for
使って楽してるけどね 実際は。

さあ、これを自分の思い通りにコントロールしてみよう。
やることは、

1. mpd,upmpdcliのプロセス(スレッド)はcpu2へ
2. irq/*と割込ハンドラが付いているもので優先度が高いものはcpu3へ
3. その他はできるだけcpu0へ

isolcpus=0-3としているのでcpu0を使えという指令は出しているが
これに従わないものもある。この辺はカーネルに任せておく。
cpu1から3はfulltickless動作をさせているため音楽再生に必要なプロセス
はこれらのcpuコアを使ってもらうようにする。
起動時にこれらの動作をさせるために僕がやっているのは
/etc/init.d/S99prioという実行権限を与えたファイルを作ってその中で
具体的にはこうやっている。
(cpu0を使ってね)
for i in `pgrep rcu*` ; do taskset -p 1 $i ; done &>/dev/null
(cpu4を使ってね)
for i in `pgrep irq/*` ; do taskset -p 8 $i ; done &>/dev/null
(cpu3を使ってね)
for i in `pstree -p upmpdcli | grep -o [0-9]*` ; do taskset -p 4 $i ; done &>/dev/null

以上の設定がうまくいっているかどうかはhtopで視覚的に確認できる。
設定をする前は、4つのcpuコアはまんべんなく使われていた。(kernelにおまかせ)
設定後は cpu1は使われず、cpu0,cpu2,cpu3がちゃんと使われていることが確認
できる。いやあ、楽しいねえ、自分の思い通りにコントロールできているというこの感覚は。

続く

次回の日記→

←前回の日記

レスを書く

レスを書くにはログインする必要があります
ログインする