diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-04-07 13:09:46 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-04-07 13:12:29 +0100 |
commit | ff7806e52c4e9b7c522e59ba8514c5c6e3fa8683 (patch) | |
tree | dd61aec2c0beddc9b4078a599bc62ac2d57ae1fb | |
parent | 5d607a744f3df07235355ebcb5376e2464e2f4b1 (diff) |
gem_tiled_swapping: Purge all page/swap caches first
Reset the system to a vanilla state before we query how much RAM/swap
space is available for our testing.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | lib/igt_aux.h | 1 | ||||
-rw-r--r-- | lib/intel_os.c | 13 | ||||
-rw-r--r-- | tests/gem_tiled_swapping.c | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/lib/igt_aux.h b/lib/igt_aux.h index 948101d2..aa8a3878 100644 --- a/lib/igt_aux.h +++ b/lib/igt_aux.h @@ -61,6 +61,7 @@ void igt_wait_for_keypress(void); /* These are separate to allow easier testing when porting, see the comment at * the bottom of intel_os.c. */ +void intel_purge_vm_caches(void); uint64_t intel_get_avail_ram_mb(void); uint64_t intel_get_total_ram_mb(void); uint64_t intel_get_total_swap_mb(void); diff --git a/lib/intel_os.c b/lib/intel_os.c index 6f0621c7..7d9a703a 100644 --- a/lib/intel_os.c +++ b/lib/intel_os.c @@ -185,6 +185,19 @@ intel_get_total_swap_mb(void) return retval / (1024*1024); } +void +intel_purge_vm_caches(void) +{ + int fd; + + fd = open("/proc/sys/vm/drop_caches", O_RDWR); + if (fd < 0) + return; + + write(fd, "3\n", 2); + close(fd); +} + /* * When testing a port to a new platform, create a standalone test binary diff --git a/tests/gem_tiled_swapping.c b/tests/gem_tiled_swapping.c index eb1453ca..aecd5438 100644 --- a/tests/gem_tiled_swapping.c +++ b/tests/gem_tiled_swapping.c @@ -102,6 +102,7 @@ igt_simple_main current_tiling_mode = I915_TILING_X; igt_skip_on_simulation(); + intel_purge_vm_caches(); fd = drm_open_any(); /* need slightly more than available memory */ |