gem_tiled_swapping: Limit to available memory

If there is not enough free RAM+swap for us to execute our test, we will
hit OOM, so check first.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson
2014-04-03 09:43:58 +01:00
parent b8afe98004
commit e8869c4bc4
3 changed files with 45 additions and 3 deletions
+10 -3
View File
@@ -104,15 +104,22 @@ igt_simple_main
igt_skip_on_simulation();
fd = drm_open_any();
/* need slightly more than total ram */
count = intel_get_total_ram_mb() * 11 / 10;
/* need slightly more than available memory */
count = intel_get_total_ram_mb() + intel_get_total_swap_mb() / 4;
bo_handles = calloc(count, sizeof(uint32_t));
igt_assert(bo_handles);
idx_arr = calloc(count, sizeof(int));
igt_assert(idx_arr);
igt_require(intel_get_total_ram_mb() / 4 < intel_get_total_swap_mb());
igt_log(IGT_LOG_INFO,
"Using %d 1MiB objects (available RAM: %ld/%ld, swap: %ld)\n",
count,
(long)intel_get_avail_ram_mb(),
(long)intel_get_total_ram_mb(),
(long)intel_get_total_swap_mb());
igt_require(count < intel_get_avail_ram_mb() + intel_get_total_swap_mb());
for (i = 0; i < count; i++) {
bo_handles[i] = create_bo_and_fill(fd);