Sim, está sempre em kB. KiB (1024 bytes, não 1000) para ser exato.
Pelo menos no Linux 4.0 (e este código permaneceu praticamente inalterado desde pelo menos abril de 2005 - foi quando Linus mudou para git
, e eu não me importo de voltar mais) que a saída vem de task_mem
em fs/proc/task_mmu.c
. Excerto algumas linhas:
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),
⋮
);
Não tenho certeza se você pode ler C, mas que "kB" é codificado lá. Não há lógica para produzir qualquer outra unidade.