2010年07月06日
4コアSMPのAndroidでのスレッドの状態
起動してからブラウザを立ち上げて何ページか閲覧したところです。
使用したバージョンはAndroid2.2_r1.1でJITも有効にしています。
>ps
1: 1(0x1) /init
1: 48(0x30) /system/bin/sh
2: 49(0x31) /system/bin/servicemanager
1: 50(0x32) /system/bin/vold
3: 61(0x3d) child-thread
3: 62(0x3e) child-thread
2: 51(0x33) /system/bin/netd
1: 63(0x3f) child-thread
2: 64(0x40) child-thread
3: 52(0x34) /system/bin/debuggerd
0: 53(0x35) /system/bin/rild
2: 65(0x41) child-thread
0: 66(0x42) child-thread
1: 54(0x36) /system/bin/app_process (zygote)
3: 55(0x37) /system/bin/mediaserver
1: 67(0x43) child-thread
2: 68(0x44) child-thread
2: 69(0x45) child-thread
1: 70(0x46) child-thread
1: 56(0x38) /system/bin/dbus-daemon
0: 57(0x39) /system/bin/installd
2: 58(0x3a) /system/bin/keystore
1: 59(0x3b) /sbin/adbd
1: 60(0x3c) child-thread
2: 71(0x47) /system/bin/app_process (system_server)
0: 72(0x48) child-thread
2: 73(0x49) child-thread
2: 74(0x4a) child-thread
3: 75(0x4b) child-thread
3: 76(0x4c) child-thread
3: 77(0x4d) child-thread
0: 78(0x4e) child-thread
2: 79(0x4f) child-thread
2: 80(0x50) child-thread
0: 81(0x51) child-thread
2: 83(0x53) child-thread
0: 87(0x57) child-thread
2: 88(0x58) child-thread
1: 89(0x59) child-thread
1: 90(0x5a) child-thread
1: 92(0x5c) child-thread
1: 93(0x5d) child-thread
3: 94(0x5e) child-thread
3: 95(0x5f) child-thread
3: 96(0x60) child-thread
0: 97(0x61) child-thread
1: 98(0x62) child-thread
2: 99(0x63) child-thread
2: 100(0x64) child-thread
0: 102(0x66) child-thread
1: 103(0x67) child-thread
1: 104(0x68) child-thread
2: 105(0x69) child-thread
3: 106(0x6a) child-thread
1: 108(0x6c) child-thread
1: 109(0x6d) child-thread
2: 110(0x6e) child-thread
1: 111(0x6f) child-thread
2: 127(0x7f) child-thread
3: 128(0x80) child-thread
1: 129(0x81) child-thread
0: 131(0x83) child-thread
0: 132(0x84) child-thread
2: 166(0xa6) child-thread
3: 167(0xa7) child-thread
3: 181(0xb5) child-thread
1: 130(0x82) /system/bin/app_process (com.android.inputmethod.latin)
2: 133(0x85) child-thread
3: 136(0x88) child-thread
2: 138(0x8a) child-thread
1: 139(0x8b) child-thread
3: 143(0x8f) child-thread
3: 145(0x91) child-thread
2: 147(0x93) child-thread
1: 162(0xa2) child-thread
2: 164(0xa4) child-thread
0: 165(0xa5) child-thread
2: 134(0x86) /system/bin/app_process (com.android.phone)
1: 140(0x8c) child-thread
3: 142(0x8e) child-thread
1: 146(0x92) child-thread
1: 148(0x94) child-thread
1: 152(0x98) child-thread
1: 153(0x99) child-thread
2: 184(0xb8) child-thread
2: 185(0xb9) child-thread
2: 186(0xba) child-thread
1: 187(0xbb) child-thread
2: 188(0xbc) child-thread
1: 189(0xbd) child-thread
3: 190(0xbe) child-thread
0: 195(0xc3) child-thread
1: 243(0xf3) child-thread
1: 244(0xf4) child-thread
3: 135(0x87) /system/bin/app_process (com.android.launcher)
2: 141(0x8d) child-thread
2: 144(0x90) child-thread
2: 149(0x95) child-thread
2: 151(0x97) child-thread
0: 154(0x9a) child-thread
3: 156(0x9c) child-thread
1: 137(0x89) /system/bin/app_process (com.android.settings)
3: 150(0x96) child-thread
0: 155(0x9b) child-thread
3: 157(0x9d) child-thread
2: 158(0x9e) child-thread
2: 160(0xa0) child-thread
3: 161(0xa1) child-thread
0: 163(0xa3) /system/bin/app_process (android.process.acore)
1: 169(0xa9) child-thread
2: 173(0xad) child-thread
2: 174(0xae) child-thread
2: 175(0xaf) child-thread
2: 176(0xb0) child-thread
0: 177(0xb1) child-thread
2: 191(0xbf) child-thread
1: 196(0xc4) child-thread
3: 197(0xc5) child-thread
3: 198(0xc6) child-thread
0: 202(0xca) /system/bin/app_process (com.android.deskclock)
2: 203(0xcb) child-thread
2: 204(0xcc) child-thread
2: 205(0xcd) child-thread
1: 206(0xce) child-thread
1: 208(0xd0) child-thread
1: 210(0xd2) child-thread
0: 207(0xcf) /system/bin/app_process (android.process.media)
3: 209(0xd1) child-thread
1: 211(0xd3) child-thread
3: 212(0xd4) child-thread
2: 213(0xd5) child-thread
3: 214(0xd6) child-thread
0: 215(0xd7) child-thread
2: 217(0xd9) child-thread
0: 218(0xda) /system/bin/app_process (com.android.bluetooth)
3: 220(0xdc) child-thread
3: 221(0xdd) child-thread
3: 222(0xde) child-thread
1: 223(0xdf) child-thread
3: 224(0xe0) child-thread
0: 225(0xe1) child-thread
3: 231(0xe7) /system/bin/app_process (com.android.mms)
3: 233(0xe9) child-thread
3: 234(0xea) child-thread
3: 235(0xeb) child-thread
1: 236(0xec) child-thread
3: 237(0xed) child-thread
1: 238(0xee) child-thread
1: 239(0xef) child-thread
1: 247(0xf7) /system/bin/app_process (com.android.email)
1: 248(0xf8) child-thread
1: 249(0xf9) child-thread
1: 250(0xfa) child-thread
2: 251(0xfb) child-thread
1: 252(0xfc) child-thread
2: 253(0xfd) child-thread
1: 255(0xff) child-thread
2: 424(0x1a8) child-thread
0: 258(0x102) /system/bin/app_process (com.android.providers.calendar)
1: 259(0x103) child-thread
1: 260(0x104) child-thread
2: 261(0x105) child-thread
1: 262(0x106) child-thread
2: 264(0x108) child-thread
2: 266(0x10a) child-thread
2: 268(0x10c) child-thread
0: 272(0x110) /system/bin/app_process (com.android.protips)
2: 273(0x111) child-thread
2: 274(0x112) child-thread
2: 275(0x113) child-thread
3: 276(0x114) child-thread
1: 277(0x115) child-thread
2: 278(0x116) child-thread
0: 279(0x117) /system/bin/app_process (com.android.music)
1: 280(0x118) child-thread
2: 281(0x119) child-thread
2: 282(0x11a) child-thread
0: 283(0x11b) child-thread
1: 284(0x11c) child-thread
1: 285(0x11d) child-thread
1: 286(0x11e) child-thread
0: 287(0x11f) /system/bin/app_process (com.android.quicksearchbox)
2: 288(0x120) child-thread
1: 289(0x121) child-thread
1: 290(0x122) child-thread
3: 291(0x123) child-thread
1: 292(0x124) child-thread
2: 293(0x125) child-thread
1: 294(0x126) child-thread
0: 295(0x127) /system/bin/app_process (com.cooliris.media)
1: 296(0x128) child-thread
2: 297(0x129) child-thread
2: 298(0x12a) child-thread
2: 299(0x12b) child-thread
1: 300(0x12c) child-thread
2: 301(0x12d) child-thread
1: 302(0x12e) child-thread
2: 304(0x130) /system/bin/app_process (com.android.browser)
1: 305(0x131) child-thread
1: 306(0x132) child-thread
1: 307(0x133) child-thread
1: 308(0x134) child-thread
3: 309(0x135) child-thread
3: 310(0x136) child-thread
2: 313(0x139) child-thread
1: 315(0x13b) child-thread
2: 317(0x13d) child-thread
3: 318(0x13e) child-thread
0: 319(0x13f) child-thread
2: 320(0x140) child-thread
0: 322(0x142) child-thread
0: 323(0x143) child-thread
0: 324(0x144) child-thread
0: 325(0x145) child-thread
0: 326(0x146) child-thread
1: 332(0x14c) child-thread
0: 333(0x14d) child-thread
1: 334(0x14e) child-thread
1: 335(0x14f) child-thread
1: 355(0x163) child-thread
>
なんとこの状態で220個ものスレッドが上がっていました。
最初のカラムはCPUのコア番号をあらわしています。コア0からコア3までが各スレッドに分散して割り当てられているのがわかります。
ブラウザではおそらくページのダウンロードやイメージのデコードをそれぞれ別スレッドでやっていると思うので、今のままでもSMPの恩恵がありそうです。
2010.7.6 追記
4コアSMPのcpuinfoです。
# cat /proc/cpuinfo Processor : ARMv7 Processor rev 1 (v7l) processor : 0 BogoMIPS : 797.90 processor : 1 BogoMIPS : 797.90 processor : 2 BogoMIPS : 797.90 processor : 3 BogoMIPS : 797.90 Features : swp half thumb fastmult vfp edsp neon CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc09 CPU revision : 1 Hardware : A9TC Revision : 0000 Serial : 0000000000000000 #
トラックバックURL
トラックバック一覧
1. KZM-CA9-01ボードのリンク集 [ KMC Staff Blog ] 2010年09月16日 10:44
4コアのCortex-A9のKZM-CA9-01ボードを使って実験したことを書いたページをまとめてみました。