gem_tiled_swapping: Purge all page/swap caches first
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 7 Apr 2014 12:09:46 +0000 (13:09 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 7 Apr 2014 12:12:29 +0000 (13:12 +0100)
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>
lib/igt_aux.h
lib/intel_os.c
tests/gem_tiled_swapping.c

index 948101d..aa8a387 100644 (file)
@@ -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);
index 6f0621c..7d9a703 100644 (file)
@@ -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
index eb1453c..aecd543 100644 (file)
@@ -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 */