Message ID | 1474636354-25573-2-git-send-email-robert.hu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 09/23/2016 06:12 AM, Robert Ho wrote: > +Note: for both /proc/PID/maps and /proc/PID/smaps readings, it's > +possible in race conditions, that the mappings printed may not be that > +up-to-date, because during each read walking, the task's mappings may have > +changed, this typically happens in multithread cases. But anyway in each single > +read these can be guarunteed: 1) the mapped addresses doesn't go backward; 2) no > +overlaps 3) if there is something at a given vaddr during the entirety of the > +life of the smaps/maps walk, there will be some output for it. Could we spuce this description up a bit? Perhaps: Note: reading /proc/PID/maps or /proc/PID/smaps is inherently racy. This typically manifests when doing partial reads of these files while the memory map is being modified. Despite the races, we do provide the following guarantees: 1) The mapped addresses never go backwards, which implies no two regions will ever overlap. 2) If there is something at a given vaddr during the entirety of the life of the smaps/maps walk, there will be some output for it. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 68080ad..90eabc7 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt @@ -515,6 +515,14 @@ be vanished or the reverse -- new added. This file is only present if the CONFIG_MMU kernel configuration option is enabled. +Note: for both /proc/PID/maps and /proc/PID/smaps readings, it's +possible in race conditions, that the mappings printed may not be that +up-to-date, because during each read walking, the task's mappings may have +changed, this typically happens in multithread cases. But anyway in each single +read these can be guarunteed: 1) the mapped addresses doesn't go backward; 2) no +overlaps 3) if there is something at a given vaddr during the entirety of the +life of the smaps/maps walk, there will be some output for it. + The /proc/PID/clear_refs is used to reset the PG_Referenced and ACCESSED/YOUNG bits on both physical and virtual pages associated with a process, and the soft-dirty bit on pte (see Documentation/vm/soft-dirty.txt for details).
Add some more description on the limitations for smaps/maps readings, as well as some guaruntees we can make. Signed-off-by: Robert Ho <robert.hu@intel.com> --- Documentation/filesystems/proc.txt | 8 ++++++++ 1 file changed, 8 insertions(+)