実験用ミニPCを第8世代から第12世代のものに買い換えたんだけれども、 perf top
が The cycles:P event is not supported.
というエラーを吐いて動かなくなった。
ハイブリッドアーキテクチャーになって、複数の種類のコアのPMUを同時に扱えないようだ。
対策として、e-coreを無効にした。まずe-coreがどれか調べる。
methane@skyland:~$ sudo lscpu --all --extended CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ 0 0 0 0 0:0:0:0 yes 4400.0000 400.0000 919.2490 1 0 0 0 0:0:0:0 yes 4400.0000 400.0000 400.0000 2 0 0 1 4:4:1:0 yes 4400.0000 400.0000 1297.6600 3 0 0 1 4:4:1:0 yes 4400.0000 400.0000 649.7930 4 0 0 2 8:8:2:0 yes 4400.0000 400.0000 400.0000 5 0 0 2 8:8:2:0 yes 4400.0000 400.0000 1354.7159 6 0 0 3 12:12:3:0 yes 4400.0000 400.0000 803.8330 7 0 0 3 12:12:3:0 yes 4400.0000 400.0000 400.0000 8 0 0 4 20:20:5:0 yes 3300.0000 400.0000 400.0000 9 0 0 5 21:21:5:0 yes 3300.0000 400.0000 400.0000 10 0 0 6 22:22:5:0 yes 3300.0000 400.0000 623.8150 11 0 0 7 23:23:5:0 yes 3300.0000 400.0000 625.3300
最大クロックが3.3GHzの8-11コアがe-coreだろう。これを無効にしてやる。
methane@skyland:~$ sudo chcpu -d 8-11 CPU 8 disabled CPU 9 disabled CPU 10 disabled CPU 11 disabled
これで無事に perf top
が動くようになった。さらば効率コア。