Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(664)

Unified Diff: physmem_alloc_analysis/README.md

Issue 1217243006: Analyze contiguous physical memory chunks that mmap system call gives (Closed) Base URL: https://github.com/acutebridge/rowhammer-test.git@phymem_alloc
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | physmem_alloc_analysis/analyze.sh » ('j') | physmem_alloc_analysis/gnuplot_script » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: physmem_alloc_analysis/README.md
diff --git a/physmem_alloc_analysis/README.md b/physmem_alloc_analysis/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d5fc73af49706e10b8f0ded13982079b8c1111e6
--- /dev/null
+++ b/physmem_alloc_analysis/README.md
@@ -0,0 +1,60 @@
+
+# physmem_alloc_analysis: Physical memory allocation analysis
+
+This directory contains code to profile physical memory allocation
+for mmap, and analyze how contiguous the assigned physical frames are.
Mark Seaborn 2015/07/01 19:21:22 Can you also add a sentence or two on the motivati
ruiq 2015/07/01 20:42:59 Done.
+
+## How to run the program:
Mark Seaborn 2015/07/01 19:21:22 Nit: omit trailing ":" (for consistency with other
ruiq 2015/07/01 20:42:59 Done.
+
+To compile and run the profiler:
+
+```
+./make.sh
+./physmem_alloc_profiler [-a alloc_size] [-s sleep_sec]
+```
+
+The profiler mmaps a chunk of memory of `alloc_size` (pages) each time,
+computes the assigned physical frames using `/proc/pid/pagemap` interface,
+and munmaps it. It then sleeps `sleep_sec` (seconds) before the next iteration.
+The program loops infinitely so manual Control-C is needed to stop it.
+A file named `physmem_alloc_results` is generated to record the assigned
+physical frame numbers.
+
+To analyze the results, run:
+
+```
+./analyze.sh
+```
+
+This takes `physmem_alloc_results` as input and produces another file:
+`contiguous_results`. As output, it shows the content of `contiguous_results`
+and invokes gnuplot for plotting as well.
+
+## Output format
+
+For `physmem_alloc_results`, each line contains information for each mmap
+allocation. The assigned physical frame numbers of each page are separated
+by space.
+
+For `contiguous_results` (which is also shown as output for analyze.sh),
+each line is of the following format:
+
+```
+size count size_total fraction
+```
+
+where:
+
+* `size` is the size (in number of pages) of virtual memory area that
+ assigned with contiguous physical frames.
+
+* `count` is the number of times such virtual memory area appears.
+
+* `size_total` = `size` * `count`, i.e., it is the total size
+ (in number of pages) for such memory area.
+
+* `fraction` = `size_total` / `alloc_total`, where `alloc_total` is
+ the sum of `size_total` of all rows. Therefore, `fraction` means
+ out of all virtual pages, what fraction of them are inside an area
+ of `size` pages whose underlying physical memory frames are contiguous.
+
« no previous file with comments | « no previous file | physmem_alloc_analysis/analyze.sh » ('j') | physmem_alloc_analysis/gnuplot_script » ('J')

Powered by Google App Engine
This is Rietveld 408576698