diff options
| author | Thomas Wood <thomas.wood@intel.com> | 2014-12-08 11:12:51 +0000 |
|---|---|---|
| committer | Thomas Wood <thomas.wood@intel.com> | 2014-12-11 17:57:03 +0000 |
| commit | 42b02c284ed24871528df8f1b3eaad7fe1554fd9 (patch) | |
| tree | aa5401462dbe77a208c7fef2c04793dd5bac9d11 /tests | |
| parent | 5fe9c88bdad9bf54013b58f2324b7b47d92ca09d (diff) | |
lib: add a function to lock memory into RAM
Add a function to lock memory into RAM and use it in the
gem_tiled_swapping test to reduce the amount of allocated memory
required to force swapping. This also reduces the amount of time
required for the test to complete, since the data set is smaller.
The following durations were recorded with gem_tiled_swapping on a
haswell system before the change:
Subtest non-threaded: SUCCESS (55.889s)
Subtest threaded: SUCCESS (810.532s)
and after:
Subtest non-threaded: SUCCESS (11.804s)
Subtest threaded: SUCCESS (268.336s)
v2: add various assertions and requirements and make sure
gem_tiled_swapping works on systems with less RAM (Daniel Vetter)
v3: fix allocation size calculation
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/gem_tiled_swapping.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tests/gem_tiled_swapping.c b/tests/gem_tiled_swapping.c index b92c9d79..d4ffd65e 100644 --- a/tests/gem_tiled_swapping.c +++ b/tests/gem_tiled_swapping.c @@ -70,6 +70,7 @@ IGT_TEST_DESCRIPTION("Exercise swizzle code for swapping."); static uint32_t current_tiling_mode; #define PAGE_SIZE 4096 +#define AVAIL_RAM 512 static uint32_t create_bo_and_fill(int fd) @@ -151,13 +152,20 @@ igt_main int fd, n, count, num_threads; igt_fixture { + size_t lock_size; + current_tiling_mode = I915_TILING_X; intel_purge_vm_caches(); fd = drm_open_any(); + + /* lock RAM, leaving only 512MB available */ + lock_size = max(0, intel_get_total_ram_mb() - AVAIL_RAM); + igt_lock_mem(lock_size); + /* need slightly more than available memory */ - count = intel_get_total_ram_mb() + intel_get_total_swap_mb() / 4; + count = min(intel_get_total_ram_mb(), AVAIL_RAM) * 1.25; bo_handles = calloc(count, sizeof(uint32_t)); igt_assert(bo_handles); |
