Proc - smaps file

The /proc/PID/smaps is an extension based on maps, showing the memory consumption for each of the process's mappings. This file is only present if the CONFIG_MMU kernel configuration option is enabled.

For SMP CONFIG users.

For making accounting scalable, RSS related information are handled in asynchronous manner and the value may not be very precise. To see a precise snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table. It's slow but very precise.

For each of mappings there is a series of lines such as the following:

addresspermsoffsetdevinodepathname
08048000-080bc000r-xp0000000003:0213130/bin/bash

This shows the same information as is displayed for the mapping in /proc/PID/maps.

Additional information is also shown:

Size:1084 kB
Rss:892 kB
Pss:374 kB
Shared_Clean:892 kB
Shared_Dirty:0 kB
Private_Clean:0 kB
Private_Dirty:0 kB
Referenced:892 kB
Anonymous:0 kB
Swap:0 kB
KernelPageSize:4 kB
MMUPageSize:4 kB

where:

NOTE: Even a page which is part of a MAP_SHARED mapping, but which only has a single private mapped, i.e. is currently used by only one process, is accounted as private and not as shared.