ここまでやるのなら、素直にソースを読もう。というわけで、読んでみた。Linux 系を想定したライブラリなのでプリプロセッサも少なく、非常にソースが読みやすい。
個人的に興味のあったものを抜粋する。
1. clearcache.c
clearcache()
キャッシュサイズを取得し、その大きさの配列を確保。
確保した配列を1で埋める。
2. shm.c
huge_page_size()
/proc/meminfo から 抽出
attach_sysvshm()
shmget() による共有メモリの確保(huge page にも対応)
3. numamon.c, libnuma.c
NUMA の構成を調べる
個人的に興味のあったものを抜粋する。
1. clearcache.c
clearcache()
キャッシュサイズを取得し、その大きさの配列を確保。
確保した配列を1で埋める。
2. shm.c
huge_page_size()
/proc/meminfo から 抽出
attach_sysvshm()
shmget() による共有メモリの確保(huge page にも対応)
3. numamon.c, libnuma.c
NUMA の構成を調べる