proc_pid_smaps(5) File Formats Manual proc_pid_smaps(5) NAZWA /proc/pid/smaps - nikt nie wie, skad w ,,smaps" wzielo sie ,,s" OPIS /proc/pid/smaps (od Linuksa 2.6.14) Plik ten pokazuje zuzycie pamieci dla kazdego mapowania procesu (polecenie pmap(1) wyswietla podobne informacje, w postaci ktora moze byc latwiejsza do przetwarzania). Dla kazdego takiego mapowania pokazana jest lista nastepujacych linii: 00400000-0048a000 r-xp 00000000 fd:03 960637 /bin/bash Size: 552 kB Rss: 460 kB Pss: 100 kB Shared_Clean: 452 kB Shared_Dirty: 0 kB Private_Clean: 8 kB Private_Dirty: 0 kB Referenced: 460 kB Anonymous: 0 kB AnonHugePages: 0 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB Swap: 0 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Locked: 0 kB ProtectionKey: 0 VmFlags: rd ex mr mw me dw Pierwsza z tych linii pokazuje te same informacje o mapowaniach, co w /proc/pid/maps. Kolejne linie zawieraja rozmiar mapowania, ilosc mapowan obecnych w RAM (,,Rss"), proporcjonalny udzial procesu w tym mapowaniu (,,Pss"), liczbe czystych i brudnych stron wspoldzielonych w mapowaniu oraz liczbe czystych i brudnych prywatnych stron w mapowaniu. ,,Referenced" oznacza pamiec ktora jest oznaczona jako pamiec do ktorej ktos odnosi sie lub uzyskuje dostep. ,,Anonymous" pokazuje pamiec nienalezaca do zadnego pliku. ,,Swap" pokazuje jak duzo pamieci ktora bylaby anonimowa jest rowniez uzywana, lecz w pamieci wymiany. Wiersz ,,KernelPageSize" (dostepny od Linuksa 2.6.29) jest rozmiarem strony uzywanym przez jadro do wirtualnej przestrzeni pamieci. Jest on w wiekszosci przypadkow takim sam, jak rozmiar uzywany przez MMU. Wyjatek wystepuje na jadrach PPC64, gdy jadro korzystajac z podstawowego rozmiaru strony w wielkosci 64 kB moze wciaz uzywac 4 kB stron dla MMU na starszych procesorach. Aby rozroznic oba atrybuty, wiersz ,,MMUPageSize" (rowniez dostepny od Linuksa 2.6.29) raportuje rozmiar strony uzywany przez MMU. ,,Locked" wskazuje, czy mapowanie jest zablokowane w pamieci czy nie. Wiersz ,,ProtectionKey" (dostepny od Linuksa 4.9, tylko na architekturze x86) zawiera klucz ochrony pamieci (zob. pkeys(7)) zwiazany z obszarem pamieci wirtualnej. Wpis ten jest obecny tylko, gdy jadro zbudowano z opcja konfiguracyjna CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS (od Linuksa 4.6). Wiersz ,,VmFlags" (dostepny od Linuksa 3.8) reprezentuje flagi jadra zwiazane z danych obszarem pamieci wirtualnej (VMA) zakodowanym za pomoca ponizszych dwuliterowych kodow: rd - do odczytu (readable) wr - do zapisu (writable) ex - wykonywalny (executable) sh - dzielony (shared) mr - mogacy odczytywac (may read) mw - mogacy zapisywac (may write) me - mogacy wykonywac (may execute) ms - mogacy dzielic (may share) gd - segment stosu rosnie w dol (grows down) pf - surowy zakres PFN dw - wylaczony zapis do zmapowanego pliku (disabled write) lo - strony sa zablokowane w pamieci (locked) io - obszar wejscia/wyjscia zmapowany do pamieci (I/O) sr - dostarczono wskazowke odczytu sekwencyjnego (sequential read) rr - dostarczono wskazowke odczytu losowego (random read) dc - bez kopiowania obszaru przy rozgalezieniu -- forkowaniu (don't copy) de - bez rozszerzania obszaru przy ponownym mapowaniu (don't expand) ac - obszar jest ksiegowalny (area accountable) nr - przestrzen wymiany nie jest zarezerowana dla tego obszaru (not reserved) ht - obszaru uzywa duzych stron tlb (huge tlb) sf - wykonuje synchroniczne chybienia stron (synchronous faults; od Linuksa 4,15) nl - mapowanie nieliniowe (non-linear; usuniete w Linuksie 4.0) ar - znacznik zalezny od architektury wf - wyczysc przy rozgalezieniu (wipe on fork; od Linuksa 4.14) dd - nie wlaczaj obszaru do zrzutu pamieci (don't dump) sd - znacznik soft-dirty (od Linuksa 3.13) mm - obszar mapowania mieszanego (mixed map) hg - znacznik wskazowki duzej strony (huge) nh - znacznik wskazowki braku duzej strony (no-huge) mg - znacznik wskazowki laczenia (mergeable) um - sledzenie brakujacych stron userfaultfd (od Linuksa 4.3) uw - sledzenie stron wprotect userfaultfd (od Linuksa 4.3) Plik /proc/pid/smaps istnieje tylko jesli podczas kompilacji jadra wlaczono opcje CONFIG_PROC_PAGE_MONITOR. ZOBACZ TAKZE proc(5) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.9.1 2 maja 2024 r. proc_pid_smaps(5)