2010年07月06日

4コアSMPのAndroidでのスレッドの状態

KZM-CA9-01ボード(Cortex-A9 Quad core)で4コアのSMPモードでAndroidを動かして、そのスレッドの状態を

PARTNER-Jetでのpsコマンドで見てみました。



起動してからブラウザを立ち上げて何ページか閲覧したところです。

使用したバージョンは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ボードを使って実験したことを書いたページをまとめてみました。

コメントする

名前
 
  絵文字
 
 
記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード