/usr/share/systemtap/examples/memory
NameSizeModeActions
cachestat.meta5450644editdlrm
cachestat.stp13180755editdlrm
glibc-malloc.meta3810644editdlrm
glibc-malloc.stp24860755editdlrm
hugepage_clear_delays.meta9460644editdlrm
hugepage_clear_delays.stp4830755editdlrm
hugepage_collapse.meta7180644editdlrm
hugepage_collapse.stp1590755editdlrm
hugepage_cow_delays.meta11060644editdlrm
hugepage_cow_delays.stp4750755editdlrm
hugepage_split.meta7560644editdlrm
hugepage_split.stp1530755editdlrm
hw_watch_addr.meta7870644editdlrm
hw_watch_addr.stp1670755editdlrm
hw_watch_addr.tcl970644editdlrm
hw_watch_sym.meta7150644editdlrm
hw_watch_sym.stp1670755editdlrm
hw_watch_sym.tcl970644editdlrm
kmalloc-top38880755editdlrm
kmalloc-top.meta6950644editdlrm
last_100_frees.meta4200644editdlrm
last_100_frees.stp8030755editdlrm
last_100_frees.tcl790644editdlrm
last_100_frees.txt7740644editdlrm
mmanonpage.meta12250644editdlrm
mmanonpage.stp18160755editdlrm
mmfilepage.meta10330644editdlrm
mmfilepage.stp35370755editdlrm
mmreclaim.meta6060644editdlrm
mmreclaim.stp52320755editdlrm
mmwriteback.meta11140644editdlrm
mmwriteback.stp19000755editdlrm
numa_faults.meta7020644editdlrm
numa_faults.stp9730755editdlrm
numa_faults.txt17100644editdlrm
overcommit.meta5840644editdlrm
overcommit.stp2170755editdlrm
pfaults.meta7440644editdlrm
pfaults.stp8750755editdlrm
pfaults.txt5580644editdlrm
vm.tracepoints.meta6080644editdlrm
vm.tracepoints.stp4140755editdlrm
vm.tracepoints.txt5570644editdlrm
Edit: /usr/share/systemtap/examples/memory/mmanonpage.stp (1816B)
#!/usr/bin/stap global traced_pid, command global allocation, free global anon_fault, anon_usrfree, anon_pgin, anon_cow, anon_unmap function log_event:long () { return (!traced_pid || traced_pid == pid()) } probe kernel.{trace("mm_page_alloc")!, trace("mm_page_allocation")} { if (!log_event()) next allocation[pid()] <<< 1 command[pid()] = execname() } probe kernel.{trace("mm_page_free")!, trace("mm_page_free_direct")} { if (!log_event()) next free[pid()] <<< 1 } probe kernel.trace("mm_anon_fault") { if (!log_event()) next anon_fault[pid()] <<< 1 } probe kernel.trace("mm_anon_pgin") { if (!log_event()) next anon_pgin[pid()] <<< 1 } probe kernel.trace("mm_anon_cow") { if (!log_event()) next anon_cow[pid()] <<< 1 } probe kernel.trace("mm_anon_unmap") { if (!log_event()) next anon_unmap[pid()] <<< 1 } probe kernel.trace("mm_anon_userfree") { if (!log_event()) next anon_usrfree[pid()] <<< 1 } probe begin { printf("Starting data collection\n") if (target()) printf("mode Specific Pid, traced pid: %d\n\n", target()) else printf("mode - All Pids\n\n") } probe end { printf("Terminating data collection\n") printf("%-16s %6s %8s %7s %7s %7s %7s %7s %7s\n", "Command", "Pid", "Alloc", "Free", "A_fault", "A_ufree", "A_pgin", "A_cow", "A_unmap") printf("%-16s %6s %8s %7s %7s %7s %7s %7s %7s\n", "-------", "---", "-----", "----", "-------", "-------", "------", "-----", "-------") foreach (pid in allocation-) printf("%-16s %6d %8d %7d %7d %7d %7d %7d %7d\n", command[pid], pid, @count(allocation[pid]), @count(free[pid]), @count(anon_fault[pid]), @count(anon_usrfree[pid]), @count(anon_pgin[pid]), @count(anon_cow[pid]), @count(anon_unmap[pid])) }