I understand that "accounted memory" means memory that is ensured to be always commited, that means: every page of the VMA is either in RAM or swap, so every page must be allocated.

However, if I cat /proc/self/smaps, I can see that the [heap] has the ac flag (I have ommited the irrelevant fields from the output):

<addr> rw-p 00000000 00:00 0                          [heap]
Size:                132 kB
Rss:                   8 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         8 kB
Referenced:            8 kB
Anonymous:             8 kB
Swap:                  0 kB
THPeligible:    0
VmFlags: rd wr mr mw me ac sd

However, the VMA has a size of 132 kB, but only 8kb are resident, and so there is 124kB that are not commited yet.

What does ac means in this context? The man proc says that ac means "the area is accountable", but I don't really know what does mean.

1 Answer 1


I believe "ac" mapped VMAs are counting toward the OOM-killer weight. E.g. glibc stack guards are not marked with ac, so they don't count.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .