VSZとRSS

徒然な感じでメモ.

mm->_file_rss+mm->_anon_rssrss.これらは実際にページが確保される際(デマンドページングだとページフォルト時)にinclude/linux/mm.h handle_mm_fault() => ... => mm/memory.c do_no_page()にてadd_mm_counter()を使ってカウントされる.これらの和はget_mm_rss()によって取得される.

VSZはfs/proc/task_mmu.c task_vsize() にて mm->total_vm を返している.この値は,vmaのサイズ変更時に合わせて変更される.

malloc()で領域を確保しても使用しなければVSZが増えるだけでRSSが増えないのはこれが原因かな.


fs/proc/task_mmu.c と uClinux時のtask_nommu.c task_mem(),task_vsize() を比較すると面白い.