2010-08-03 曇り [長年日記]
_1 /proc/cpuinfoのエントリ
間違ってたり,いつの間にか変更されたり擦る可能性があるので注意.調査対象はlinux-2.6.35-ccs-1.8.0-pre.
何がどういう意味なのか,前にも調べけどすっかり忘れてしまってて再度ソースを見直す.二度あることは,なのでメモしておく.
processor : 通番 physical id : ソケット番号(ACPIの_SUNメソッドの値) siblings : 同じソケット上のCPU数 core id : CPU Core番号(APICのレジスタから?) cpu cores : 同じソケット上のコア数
あるマシンを例にあげると上記エントリは
processor : 0 physical id : 4 siblings : 12 core id : 0 cpu cores : 6
のような感じ.これは1ソケットあたり6コアのCPUでHTをONにしている状態であることがわかる.HTのON/OFFはsiblingsとcpu coresの値が同値かどうかを見れば判断できる.
core idが何を元にしているのかについては後日詳しく調べる(つもり).
_2 Linuxカーネル2.6.35リリース、ネットワーク負荷軽減機構やH.264ハードウェアデコードなどをサポート - SourceForge.JP Magazine : オープンソースの話題満載
こういう要約記事はありがたい.
「Memory compaction」と呼ばれる、メモリの断片化を軽減する仕組みも追加された。これは使用中のメモリページを連続した大きなページに移動することでメモリ使用効率の改善を図るというもの。ページ確保に失敗した際に実行されるほか、「/proc/sys/compact_memory」や「/sys /devices/system/node/nodeN/compact」に任意の値を書き込むことで任意のタイミングで実行させることもできる。
とあるけど,これ間違ってるような.特に「連続した大きなページ」ってところ.なんかページサイズが動的に変わるように読めるけど,そんなことないはず(ってそんな機能あったりする?だったらスミマセン).x86の場合は4k.
この機能のイメージはこんな感じかな.
使用ページ : ■ 空きページ : □ 前 : ■□■□■□■□ 後 : ■■■■□□□□
デフラグ前は最大連続4kのメモリしか取れないけど,デフラグ後は連続16kでも大丈夫!ってことになる.なので記事は「使用中のメモリページを移動させ大きなひとかたまりにすることで」ってのが正しい.
ってKernel Newbiesの原文見ればそう書いてあった.それにしても読むのかなり久しぶり.ざっくりとでいいからあとで読む.