summaryrefslogtreecommitdiff
path: root/tests/i915/gem_ppgtt.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-02-28 15:30:43 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2019-03-11 10:10:23 +0000
commit4e7296aa879350b10a216b88fa7f44d919765765 (patch)
treec182e3bb65fc65b0b4f52c0560138389838690bb /tests/i915/gem_ppgtt.c
parent478615b1edba88559386ba80ccbf0f035f3360a9 (diff)
i915/gem_ppgtt: Estimate resource usage and bail if it means swapping!
fi-kbl-guc's swap ran dry while running blt-vs-render-ctxN, which is mildly concerning but conceivable as we never checked there was enough memory to run the test to begin with. Each child needs to keep its own surface and possible a pair of logical contexts (one for rcs and one for bcs) so check that there is enough memory to allow all children to co-exist. During execution, we require another surface and batch, but these are temporary and so should fit fine with a small amount of thrashing on the boundary. References: https://bugs.freedesktop.org/show_bug.cgi?id=109801 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Diffstat (limited to 'tests/i915/gem_ppgtt.c')
-rw-r--r--tests/i915/gem_ppgtt.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/i915/gem_ppgtt.c b/tests/i915/gem_ppgtt.c
index 11ca31e7..9409bef1 100644
--- a/tests/i915/gem_ppgtt.c
+++ b/tests/i915/gem_ppgtt.c
@@ -91,8 +91,14 @@ static void fork_rcs_copy(int timeout, uint32_t final,
#define CREATE_CONTEXT 0x1
{
igt_render_copyfunc_t render_copy;
+ uint64_t mem_per_child;
int devid;
+ mem_per_child = SIZE;
+ if (flags & CREATE_CONTEXT)
+ mem_per_child += 2 * 128 * 1024; /* rough context sizes */
+ intel_require_memory(mem_per_child, count, CHECK_RAM);
+
for (int child = 0; child < count; child++) {
int fd = drm_open_driver(DRIVER_INTEL);
drm_intel_bufmgr *bufmgr;