{
    "mode": "man",
    "parameter": "proc_pid_smaps",
    "section": "5",
    "url": "https://www.chedong.com/phpMan.php/man/proc_pid_smaps/5/json",
    "generated": "2026-10-04T12:25:50Z",
    "sections": {
        "NAME": {
            "content": "/proc/pid/smaps - XXX: What does 's' in \"smaps\" stand for?\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "/proc/pid/smaps (since Linux 2.6.14)\nThis  file  shows memory consumption for each of the process's mappings.  (The pmap(1)\ncommand displays similar information, in a form that may be easier for parsing.)   For\neach mapping there is a series of lines such as the following:\n\n00400000-0048a000 r-xp 00000000 fd:03 960637       /bin/bash\nSize:                552 kB\nRss:                 460 kB\nPss:                 100 kB\nSharedClean:        452 kB\nSharedDirty:          0 kB\nPrivateClean:         8 kB\nPrivateDirty:         0 kB\nReferenced:          460 kB\nAnonymous:             0 kB\nAnonHugePages:         0 kB\nShmemHugePages:        0 kB\nShmemPmdMapped:        0 kB\nSwap:                  0 kB\nKernelPageSize:        4 kB\nMMUPageSize:           4 kB\nLocked:                0 kB\nProtectionKey:         0\nVmFlags: rd ex mr mw me dw\n\nThe first of these lines shows the same information as is displayed for the mapping in\n/proc/pid/maps.   The  following lines show the size of the mapping, the amount of the\nmapping that is currently resident in RAM (\"Rss\"), the process's proportional share of\nthis mapping (\"Pss\"), the number of clean and dirty shared pages in the  mapping,  and\nthe  number  of  clean and dirty private pages in the mapping.  \"Referenced\" indicates\nthe amount of memory currently marked as referenced or  accessed.   \"Anonymous\"  shows\nthe  amount  of memory that does not belong to any file.  \"Swap\" shows how much would-\nbe-anonymous memory is also used, but out on swap.\n\nThe \"KernelPageSize\" line (available since Linux 2.6.29) is the page size used by  the\nkernel  to back the virtual memory area.  This matches the size used by the MMU in the\nmajority of cases.  However, one counter-example occurs on  PPC64  kernels  whereby  a\nkernel  using  64 kB as a base page size may still use 4 kB pages for the MMU on older\nprocessors.  To distinguish the two attributes, the \"MMUPageSize\" line (also available\nsince Linux 2.6.29) reports the page size used by the MMU.\n\nThe \"Locked\" indicates whether the mapping is locked in memory or not.\n\nThe \"ProtectionKey\" line (available since Linux 4.9, on x86 only) contains the  memory\nprotection  key (see pkeys(7)) associated with the virtual memory area.  This entry is\npresent only if the kernel was built with the  CONFIGX86INTELMEMORYPROTECTIONKEYS\nconfiguration option (since Linux 4.6).\n\nThe  \"VmFlags\" line (available since Linux 3.8) represents the kernel flags associated\nwith the virtual memory area, encoded using the following two-letter codes:\n\nrd   -   readable\nwr   -   writable\nex   -   executable\nsh   -   shared\nmr   -   may read\nmw   -   may write\nme   -   may execute\nms   -   may share\ngd   -   stack segment grows down\npf   -   pure PFN range\ndw   -   disabled write to the mapped file\nlo   -   pages are locked in memory\nio   -   memory mapped I/O area\nsr   -   sequential read advise provided\nrr   -   random read advise provided\ndc   -   do not copy area on fork\nde   -   do not expand area on remapping\nac   -   area is accountable\nnr   -   swap space is not reserved for the area\nht   -   area uses huge tlb pages\nsf   -   perform synchronous page faults (since Linux 4.15)\nnl   -   non-linear mapping (removed in Linux 4.0)\nar   -   architecture specific flag\nwf   -   wipe on fork (since Linux 4.14)\ndd   -   do not include area into core dump\nsd   -   soft-dirty flag (since Linux 3.13)\nmm   -   mixed map area\nhg   -   huge page advise flag\nnh   -   no-huge page advise flag\nmg   -   mergeable advise flag\num   -   userfaultfd missing pages tracking (since Linux 4.3)\nuw   -   userfaultfd wprotect pages tracking (since Linux 4.3)\n\nThe /proc/pid/smaps file is present only if the CONFIGPROCPAGEMONITOR  kernel  con‐\nfiguration option is enabled.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "proc(5)\n\nLinux man-pages 6.7                          2023-09-07                            procpidsmaps(5)",
            "subsections": []
        }
    },
    "summary": "/proc/pid/smaps - XXX: What does 's' in \"smaps\" stand for?",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "proc",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/proc/5/json"
        }
    ]
}