mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-12 02:16:17 +00:00
igt/gem_exec_flush: Add interruptible testing
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
16c9edb464
commit
805a05caae
@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Basic check of flushing after batches");
|
|||||||
#define WRITE 2
|
#define WRITE 2
|
||||||
#define KERNEL 4
|
#define KERNEL 4
|
||||||
#define SET_DOMAIN 8
|
#define SET_DOMAIN 8
|
||||||
|
#define INTERRUPTIBLE 16
|
||||||
|
|
||||||
static void run(int fd, unsigned ring, int nchild, int timeout,
|
static void run(int fd, unsigned ring, int nchild, int timeout,
|
||||||
unsigned flags)
|
unsigned flags)
|
||||||
@ -160,49 +161,51 @@ static void run(int fd, unsigned ring, int nchild, int timeout,
|
|||||||
|
|
||||||
gem_execbuf(fd, &execbuf);
|
gem_execbuf(fd, &execbuf);
|
||||||
|
|
||||||
if (flags & SET_DOMAIN) {
|
igt_interruptible(flags & INTERRUPTIBLE) {
|
||||||
gem_set_domain(fd, obj[0].handle,
|
if (flags & SET_DOMAIN) {
|
||||||
I915_GEM_DOMAIN_GTT,
|
gem_set_domain(fd, obj[0].handle,
|
||||||
flags & WRITE ? I915_GEM_DOMAIN_GTT : 0);
|
I915_GEM_DOMAIN_GTT,
|
||||||
|
(flags & WRITE) ? I915_GEM_DOMAIN_GTT : 0);
|
||||||
|
|
||||||
if (xor)
|
if (xor)
|
||||||
igt_assert_eq_u32(map[i], i ^ 0xffffffff);
|
igt_assert_eq_u32(map[i], i ^ 0xffffffff);
|
||||||
else
|
else
|
||||||
igt_assert_eq_u32(map[i], i);
|
igt_assert_eq_u32(map[i], i);
|
||||||
|
|
||||||
if (flags & WRITE)
|
if (flags & WRITE)
|
||||||
map[i] = 0xdeadbeef;
|
map[i] = 0xdeadbeef;
|
||||||
} else if (flags & KERNEL) {
|
} else if (flags & KERNEL) {
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
|
|
||||||
gem_read(fd, obj[0].handle, i*sizeof(uint32_t),
|
gem_read(fd, obj[0].handle, i*sizeof(uint32_t),
|
||||||
&val, sizeof(val));
|
&val, sizeof(val));
|
||||||
|
|
||||||
if (xor)
|
if (xor)
|
||||||
igt_assert_eq_u32(val, i ^ 0xffffffff);
|
igt_assert_eq_u32(val, i ^ 0xffffffff);
|
||||||
else
|
else
|
||||||
igt_assert_eq_u32(val, i);
|
igt_assert_eq_u32(val, i);
|
||||||
|
|
||||||
if (flags & WRITE) {
|
if (flags & WRITE) {
|
||||||
val = 0xdeadbeef;
|
val = 0xdeadbeef;
|
||||||
gem_write(fd, obj[0].handle, i*sizeof(uint32_t),
|
gem_write(fd, obj[0].handle, i*sizeof(uint32_t),
|
||||||
&val, sizeof(val));
|
&val, sizeof(val));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gem_sync(fd, obj[0].handle);
|
gem_sync(fd, obj[0].handle);
|
||||||
|
|
||||||
if (!(flags & COHERENT) && !gem_has_llc(fd))
|
if (!(flags & COHERENT) && !gem_has_llc(fd))
|
||||||
igt_clflush_range(&map[i], sizeof(map[i]));
|
|
||||||
|
|
||||||
if (xor)
|
|
||||||
igt_assert_eq_u32(map[i], i ^ 0xffffffff);
|
|
||||||
else
|
|
||||||
igt_assert_eq_u32(map[i], i);
|
|
||||||
|
|
||||||
if (flags & WRITE) {
|
|
||||||
map[i] = 0xdeadbeef;
|
|
||||||
if (!(flags & COHERENT))
|
|
||||||
igt_clflush_range(&map[i], sizeof(map[i]));
|
igt_clflush_range(&map[i], sizeof(map[i]));
|
||||||
|
|
||||||
|
if (xor)
|
||||||
|
igt_assert_eq_u32(map[i], i ^ 0xffffffff);
|
||||||
|
else
|
||||||
|
igt_assert_eq_u32(map[i], i);
|
||||||
|
|
||||||
|
if (flags & WRITE) {
|
||||||
|
map[i] = 0xdeadbeef;
|
||||||
|
if (!(flags & COHERENT))
|
||||||
|
igt_clflush_range(&map[i], sizeof(map[i]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -263,12 +266,26 @@ igt_main
|
|||||||
run(fd, ring, ncpus, timeout,
|
run(fd, ring, ncpus, timeout,
|
||||||
UNCACHED | m->flags);
|
UNCACHED | m->flags);
|
||||||
|
|
||||||
|
igt_subtest_f("%suc-%s-%s-interruptible",
|
||||||
|
e->exec_id == 0 ? "basic-" : "",
|
||||||
|
m->name,
|
||||||
|
e->name)
|
||||||
|
run(fd, ring, ncpus, timeout,
|
||||||
|
UNCACHED | m->flags | INTERRUPTIBLE);
|
||||||
|
|
||||||
igt_subtest_f("%swb-%s-%s",
|
igt_subtest_f("%swb-%s-%s",
|
||||||
e->exec_id == 0 ? "basic-" : "",
|
e->exec_id == 0 ? "basic-" : "",
|
||||||
m->name,
|
m->name,
|
||||||
e->name)
|
e->name)
|
||||||
run(fd, ring, ncpus, timeout,
|
run(fd, ring, ncpus, timeout,
|
||||||
COHERENT | m->flags);
|
COHERENT | m->flags);
|
||||||
|
|
||||||
|
igt_subtest_f("%swb-%s-%s-interruptible",
|
||||||
|
e->exec_id == 0 ? "basic-" : "",
|
||||||
|
m->name,
|
||||||
|
e->name)
|
||||||
|
run(fd, ring, ncpus, timeout,
|
||||||
|
COHERENT | m->flags | INTERRUPTIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user