diff mbox

[v3,2/2] Documentation/filesystems/proc.txt: Add more description for maps/smaps

Message ID 1474636354-25573-2-git-send-email-robert.hu@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Robert Hoo Sept. 23, 2016, 1:12 p.m. UTC
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(+)

Comments

Dave Hansen Sept. 23, 2016, 4:06 p.m. UTC | #1
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 mbox

Patch

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).