From 30769516984f404a54a60e7815a20de2a88b8d2a Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 12 Apr 2016 16:50:34 +0100 Subject: [PATCH] igt/gem_exec_create: Add a "leak" test Don't close the objects, but just mark them as unneded. Signed-off-by: Chris Wilson --- tests/gem_exec_create.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/gem_exec_create.c b/tests/gem_exec_create.c index bd0dfb50..d5e11037 100644 --- a/tests/gem_exec_create.c +++ b/tests/gem_exec_create.c @@ -65,7 +65,9 @@ static bool ignore_engine(int fd, unsigned engine) return false; } -static void all(int fd, int timeout) +#define LEAK 0x1 + +static void all(int fd, unsigned flags, int timeout) { const uint32_t bbe = MI_BATCH_BUFFER_END; struct drm_i915_gem_execbuffer2 execbuf; @@ -112,7 +114,10 @@ static void all(int fd, int timeout) execbuf.flags &= ~ENGINE_FLAGS; execbuf.flags |= engines[n]; gem_execbuf(fd, &execbuf); - gem_close(fd, obj.handle); + if (flags & LEAK) + gem_madvise(fd, obj.handle, I915_MADV_DONTNEED); + else + gem_close(fd, obj.handle); } } count += nengine * 1024; @@ -136,7 +141,10 @@ igt_main igt_fork_hang_detector(device); igt_subtest("basic") - all(device, 20); + all(device, 0, 20); + + igt_subtest("madvise") + all(device, LEAK, 20); igt_stop_hang_detector();