Czy / proc / [pid] / status zawsze używa kB?

10

W szczególności, czy proczawsze podaje wartość VmRSS kB? Nie mogę znaleźć solidnej odpowiedzi w dokumentacji , chociaż wydaje się, że przylega do jednej jednostki.

Jess Smith
źródło

Odpowiedzi:

10

Tak, zawsze w kB. Dokładność to KiB (1024 bajty, a nie 1000).

Przynajmniej w Linux 4.0 (i kod ten został w dużej mierze niezmienione od co najmniej kwietnia 2005-tych, kiedy Linus, który przełącza się git, a ja nie dbam o to, aby sprawdzać dalej), że moc pochodzi z task_memwfs/proc/task_mmu.c . Fragment kilku wierszy:

seq_printf(m,
    "VmPeak:\t%8lu kB\n"
    "VmSize:\t%8lu kB\n"
    "VmLck:\t%8lu kB\n"
    "VmPin:\t%8lu kB\n"
    "VmHWM:\t%8lu kB\n"
    "VmRSS:\t%8lu kB\n"
    "VmData:\t%8lu kB\n"
    "VmStk:\t%8lu kB\n"
    "VmExe:\t%8lu kB\n"
    "VmLib:\t%8lu kB\n"
    "VmPTE:\t%8lu kB\n"
    "VmPMD:\t%8lu kB\n"
    "VmSwap:\t%8lu kB\n",
    hiwater_vm << (PAGE_SHIFT-10),
    
);

Nie jestem pewien, czy potrafisz odczytać C, ale ten „kB” jest tam na stałe zakodowany. Nie ma logiki, aby wyprowadzać jakąkolwiek inną jednostkę.

derobert
źródło
Czy to samo dotyczy /proc/meminfo? man 5 procnie jest tu do końca jasne.
olejorgenb
1
@olejorgenb tak, to też jest mocno zakodowane jako kB. Zajrzyj do środka fs/proc/meminfo.c. (I proszę o przesłanie łatki na stronie podręcznika w celu wyjaśnienia.)
derobert