* [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context
@ 2017-10-04 14:25 Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 2/5] igt/gem_workarounds: Also exercise fresh contexts not the persistent default Chris Wilson
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Chris Wilson @ 2017-10-04 14:25 UTC (permalink / raw)
To: intel-gfx
The workarounds are only valid whilst the GPU is active. To be sure we
are reading the registers in the right state, issue the reads from the GPU.
v2: Show ignored write-only failures as debug.
v3: PAGE_ALIGN.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
tests/gem_workarounds.c | 150 +++++++++++++++++++++++++++---------------------
1 file changed, 84 insertions(+), 66 deletions(-)
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index 5e30a7b8..c669a5cd 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -29,6 +29,9 @@
#include <fcntl.h>
+#define PAGE_SIZE 4096
+#define PAGE_ALIGN(x) ALIGN(x, PAGE_SIZE)
+
static int gen;
enum operation {
@@ -61,20 +64,6 @@ static struct write_only_list {
static struct intel_wa_reg *wa_regs;
static int num_wa_regs;
-static void wait_gpu(void)
-{
- int fd = drm_open_driver(DRIVER_INTEL);
- gem_quiescent_gpu(fd);
- close(fd);
-}
-
-static void test_hang_gpu(void)
-{
- int fd = drm_open_driver(DRIVER_INTEL);
- igt_post_hang_ring(fd, igt_hang_ring(fd, I915_EXEC_DEFAULT));
- close(fd);
-}
-
static void test_suspend_resume(void)
{
igt_info("Suspending the device ...\n");
@@ -96,49 +85,95 @@ static bool write_only(const uint32_t addr)
return false;
}
-static int workaround_fail_count(void)
-{
- int i, fail_count = 0;
-
- /* There is a small delay after coming ot of rc6 to the correct
- render context values will get loaded by hardware (bdw,chv).
- This here ensures that we have the correct context loaded before
- we start to read values */
- wait_gpu();
+#define MI_STORE_REGISTER_MEM (0x24 << 23)
- igt_debug("Address\tval\t\tmask\t\tread\t\tresult\n");
+static int workaround_fail_count(int fd)
+{
+ struct drm_i915_gem_exec_object2 obj[2];
+ struct drm_i915_gem_relocation_entry *reloc;
+ struct drm_i915_gem_execbuffer2 execbuf;
+ uint32_t result_sz, batch_sz;
+ uint32_t *base, *out;
+ int fail_count = 0;
+
+ reloc = calloc(num_wa_regs, sizeof(*reloc));
+ igt_assert(reloc);
+
+ result_sz = 4 * num_wa_regs;
+ result_sz = PAGE_ALIGN(result_sz);
+
+ batch_sz = 16 * num_wa_regs + 4;
+ batch_sz = PAGE_ALIGN(batch_sz);
+
+ memset(obj, 0, sizeof(obj));
+ obj[0].handle = gem_create(fd, result_sz);
+ gem_set_caching(fd, obj[0].handle, I915_CACHING_CACHED);
+ obj[1].handle = gem_create(fd, batch_sz);
+ obj[1].relocs_ptr = to_user_pointer(reloc);
+ obj[1].relocation_count = num_wa_regs;
+
+ out = base = gem_mmap__cpu(fd, obj[1].handle, 0, batch_sz, PROT_WRITE);
+ for (int i = 0; i < num_wa_regs; i++) {
+ *out++ = MI_STORE_REGISTER_MEM | ((gen >= 8 ? 4 : 2) - 2);
+ *out++ = wa_regs[i].addr;
+ reloc[i].target_handle = obj[0].handle;
+ reloc[i].offset = (out - base) * sizeof(*out);
+ reloc[i].delta = i * sizeof(uint32_t);
+ reloc[i].read_domains = I915_GEM_DOMAIN_INSTRUCTION;
+ reloc[i].write_domain = I915_GEM_DOMAIN_INSTRUCTION;
+ *out++ = reloc[i].delta;
+ if (gen >= 8)
+ *out++ = 0;
+ }
+ *out++ = MI_BATCH_BUFFER_END;
+ munmap(base, batch_sz);
- for (i = 0; i < num_wa_regs; ++i) {
- const uint32_t val = intel_register_read(wa_regs[i].addr);
- const bool ok = (wa_regs[i].value & wa_regs[i].mask) ==
- (val & wa_regs[i].mask);
+ memset(&execbuf, 0, sizeof(execbuf));
+ execbuf.buffers_ptr = to_user_pointer(obj);
+ execbuf.buffer_count = 2;
+ gem_execbuf(fd, &execbuf);
- igt_debug("0x%05X\t0x%08X\t0x%08X\t0x%08X\t%s\n",
- wa_regs[i].addr, wa_regs[i].value, wa_regs[i].mask,
- val, ok ? "OK" : "FAIL");
+ gem_set_domain(fd, obj[0].handle, I915_GEM_DOMAIN_CPU, 0);
- if (write_only(wa_regs[i].addr))
- continue;
+ igt_debug("Address\tval\t\tmask\t\tread\t\tresult\n");
- if (!ok) {
- igt_warn("0x%05X\t0x%08X\t0x%08X\t0x%08X\t%s\n",
- wa_regs[i].addr, wa_regs[i].value,
- wa_regs[i].mask,
- val, ok ? "OK" : "FAIL");
+ out = gem_mmap__cpu(fd, obj[0].handle, 0, result_sz, PROT_READ);
+ for (int i = 0; i < num_wa_regs; i++) {
+ const bool ok =
+ (wa_regs[i].value & wa_regs[i].mask) ==
+ (out[i] & wa_regs[i].mask);
+ char buf[80];
+
+ snprintf(buf, sizeof(buf),
+ "0x%05X\t0x%08X\t0x%08X\t0x%08X",
+ wa_regs[i].addr, wa_regs[i].value, wa_regs[i].mask,
+ out[i]);
+
+ if (ok) {
+ igt_debug("%s\tOK\n", buf);
+ } else if (write_only(wa_regs[i].addr)) {
+ igt_debug("%s\tIGNORED (w/o)\n", buf);
+ } else {
+ igt_warn("%s\tFAIL\n", buf);
fail_count++;
}
}
+ munmap(out, result_sz);
+
+ gem_close(fd, obj[1].handle);
+ gem_close(fd, obj[0].handle);
+ free(reloc);
return fail_count;
}
-static void check_workarounds(enum operation op)
+static void check_workarounds(int fd, enum operation op)
{
- igt_assert_eq(workaround_fail_count(), 0);
+ igt_assert_eq(workaround_fail_count(fd), 0);
switch (op) {
case GPU_RESET:
- test_hang_gpu();
+ igt_force_gpu_reset(fd);
break;
case SUSPEND_RESUME:
@@ -152,40 +187,30 @@ static void check_workarounds(enum operation op)
igt_assert(0);
}
- igt_assert_eq(workaround_fail_count(), 0);
+ igt_assert_eq(workaround_fail_count(fd), 0);
}
igt_main
{
+ int device = -1;
+
igt_fixture {
- int device = drm_open_driver_master(DRIVER_INTEL);
- struct pci_device *pci_dev;
FILE *file;
char *line = NULL;
size_t line_size;
int i, fd;
+ device = drm_open_driver(DRIVER_INTEL);
igt_require_gem(device);
gen = intel_gen(intel_get_drm_devid(device));
- pci_dev = intel_get_pci_device();
- igt_require(pci_dev);
-
- intel_register_access_init(pci_dev, 0, device);
-
fd = igt_debugfs_open(device, "i915_wa_registers", O_RDONLY);
file = fdopen(fd, "r");
igt_assert(getline(&line, &line_size, file) > 0);
igt_debug("i915_wa_registers: %s", line);
sscanf(line, "Workarounds applied: %d", &num_wa_regs);
-
- /* For newer gens, the lri wa list has always something.
- * If it doesn't, go and add one. */
- if (gen >= 8)
- igt_assert_lt(0, num_wa_regs);
- else
- igt_assert_lte(0, num_wa_regs);
+ igt_require(num_wa_regs > 0);
wa_regs = malloc(num_wa_regs * sizeof(*wa_regs));
igt_assert(wa_regs);
@@ -205,21 +230,14 @@ igt_main
free(line);
fclose(file);
close(fd);
- close(device);
}
igt_subtest("basic-read")
- check_workarounds(SIMPLE_READ);
+ check_workarounds(device, SIMPLE_READ);
igt_subtest("reset")
- check_workarounds(GPU_RESET);
+ check_workarounds(device, GPU_RESET);
igt_subtest("suspend-resume")
- check_workarounds(SUSPEND_RESUME);
-
- igt_fixture {
- free(wa_regs);
- intel_register_access_fini();
- }
-
+ check_workarounds(device, SUSPEND_RESUME);
}
--
2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH igt v2 2/5] igt/gem_workarounds: Also exercise fresh contexts not the persistent default
2017-10-04 14:25 [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context Chris Wilson
@ 2017-10-04 14:25 ` Chris Wilson
2017-10-05 8:18 ` Mika Kuoppala
2017-10-04 14:25 ` [PATCH igt v2 3/5] igt/gem_workarounds: Also test new fd (implicit default context) Chris Wilson
` (4 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Chris Wilson @ 2017-10-04 14:25 UTC (permalink / raw)
To: intel-gfx
v2: Actually exercise the new context
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
tests/gem_workarounds.c | 35 +++++++++++++++++++++++++++--------
1 file changed, 27 insertions(+), 8 deletions(-)
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index c669a5cd..234fef0a 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -87,7 +87,7 @@ static bool write_only(const uint32_t addr)
#define MI_STORE_REGISTER_MEM (0x24 << 23)
-static int workaround_fail_count(int fd)
+static int workaround_fail_count(int fd, uint32_t ctx)
{
struct drm_i915_gem_exec_object2 obj[2];
struct drm_i915_gem_relocation_entry *reloc;
@@ -131,6 +131,7 @@ static int workaround_fail_count(int fd)
memset(&execbuf, 0, sizeof(execbuf));
execbuf.buffers_ptr = to_user_pointer(obj);
execbuf.buffer_count = 2;
+ execbuf.rsvd1 = ctx;
gem_execbuf(fd, &execbuf);
gem_set_domain(fd, obj[0].handle, I915_GEM_DOMAIN_CPU, 0);
@@ -167,9 +168,15 @@ static int workaround_fail_count(int fd)
return fail_count;
}
-static void check_workarounds(int fd, enum operation op)
+#define CONTEXT 0x1
+static void check_workarounds(int fd, enum operation op, unsigned int flags)
{
- igt_assert_eq(workaround_fail_count(fd), 0);
+ uint32_t ctx = 0;
+
+ if (flags & CONTEXT)
+ ctx = gem_context_create(fd);
+
+ igt_assert_eq(workaround_fail_count(fd, ctx), 0);
switch (op) {
case GPU_RESET:
@@ -181,13 +188,16 @@ static void check_workarounds(int fd, enum operation op)
break;
case SIMPLE_READ:
- return;
+ break;
default:
igt_assert(0);
}
- igt_assert_eq(workaround_fail_count(fd), 0);
+ igt_assert_eq(workaround_fail_count(fd, ctx), 0);
+
+ if (ctx)
+ gem_context_destroy(fd, ctx);
}
igt_main
@@ -233,11 +243,20 @@ igt_main
}
igt_subtest("basic-read")
- check_workarounds(device, SIMPLE_READ);
+ check_workarounds(device, SIMPLE_READ, 0);
+
+ igt_subtest("basic-read-context")
+ check_workarounds(device, SIMPLE_READ, CONTEXT);
igt_subtest("reset")
- check_workarounds(device, GPU_RESET);
+ check_workarounds(device, GPU_RESET, 0);
+
+ igt_subtest("reset-context")
+ check_workarounds(device, GPU_RESET, CONTEXT);
igt_subtest("suspend-resume")
- check_workarounds(device, SUSPEND_RESUME);
+ check_workarounds(device, SUSPEND_RESUME, 0);
+
+ igt_subtest("suspend-resume-context")
+ check_workarounds(device, SUSPEND_RESUME, CONTEXT);
}
--
2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH igt v2 3/5] igt/gem_workarounds: Also test new fd (implicit default context)
2017-10-04 14:25 [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 2/5] igt/gem_workarounds: Also exercise fresh contexts not the persistent default Chris Wilson
@ 2017-10-04 14:25 ` Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 4/5] igt/gem_workarounds: Reduce manual list to combinatorial loops Chris Wilson
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2017-10-04 14:25 UTC (permalink / raw)
To: intel-gfx
To complete the picture also test a new fd with its implicit default
context. Now we have a test for a longstanding fd, new client, new
context.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
tests/gem_workarounds.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index 234fef0a..3f0f7515 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -168,11 +168,25 @@ static int workaround_fail_count(int fd, uint32_t ctx)
return fail_count;
}
+static int reopen(int fd)
+{
+ char path[256];
+
+ snprintf(path, sizeof(path), "/proc/self/fd/%d", fd);
+ fd = open(path, O_RDWR);
+ igt_assert_lte(0, fd);
+
+ return fd;
+}
+
#define CONTEXT 0x1
+#define FDS 0x2
static void check_workarounds(int fd, enum operation op, unsigned int flags)
{
uint32_t ctx = 0;
+ if (flags & FDS)
+ fd = reopen(fd);
if (flags & CONTEXT)
ctx = gem_context_create(fd);
@@ -198,6 +212,8 @@ static void check_workarounds(int fd, enum operation op, unsigned int flags)
if (ctx)
gem_context_destroy(fd, ctx);
+ if (flags & FDS)
+ close(fd);
}
igt_main
@@ -248,15 +264,24 @@ igt_main
igt_subtest("basic-read-context")
check_workarounds(device, SIMPLE_READ, CONTEXT);
+ igt_subtest("basic-read-fd")
+ check_workarounds(device, SIMPLE_READ, FDS);
+
igt_subtest("reset")
check_workarounds(device, GPU_RESET, 0);
igt_subtest("reset-context")
check_workarounds(device, GPU_RESET, CONTEXT);
+ igt_subtest("reset-fd")
+ check_workarounds(device, GPU_RESET, FDS);
+
igt_subtest("suspend-resume")
check_workarounds(device, SUSPEND_RESUME, 0);
igt_subtest("suspend-resume-context")
check_workarounds(device, SUSPEND_RESUME, CONTEXT);
+
+ igt_subtest("suspend-resume-fd")
+ check_workarounds(device, SUSPEND_RESUME, FDS);
}
--
2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH igt v2 4/5] igt/gem_workarounds: Reduce manual list to combinatorial loops
2017-10-04 14:25 [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 2/5] igt/gem_workarounds: Also exercise fresh contexts not the persistent default Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 3/5] igt/gem_workarounds: Also test new fd (implicit default context) Chris Wilson
@ 2017-10-04 14:25 ` Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 5/5] igt/gem_workarounds: Add hibernation coverage Chris Wilson
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2017-10-04 14:25 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
tests/gem_workarounds.c | 50 ++++++++++++++++++++++++-------------------------
1 file changed, 24 insertions(+), 26 deletions(-)
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index 3f0f7515..4263f1df 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -219,6 +219,24 @@ static void check_workarounds(int fd, enum operation op, unsigned int flags)
igt_main
{
int device = -1;
+ const struct {
+ const char *name;
+ enum operation op;
+ } ops[] = {
+ { "basic-read", SIMPLE_READ },
+ { "reset", GPU_RESET },
+ { "suspend-resume", SUSPEND_RESUME },
+ { }
+ }, *op;
+ const struct {
+ const char *name;
+ unsigned int flags;
+ } modes[] = {
+ { "", 0 },
+ { "-context", CONTEXT },
+ { "-fd", FDS },
+ { }
+ }, *m;
igt_fixture {
FILE *file;
@@ -258,30 +276,10 @@ igt_main
close(fd);
}
- igt_subtest("basic-read")
- check_workarounds(device, SIMPLE_READ, 0);
-
- igt_subtest("basic-read-context")
- check_workarounds(device, SIMPLE_READ, CONTEXT);
-
- igt_subtest("basic-read-fd")
- check_workarounds(device, SIMPLE_READ, FDS);
-
- igt_subtest("reset")
- check_workarounds(device, GPU_RESET, 0);
-
- igt_subtest("reset-context")
- check_workarounds(device, GPU_RESET, CONTEXT);
-
- igt_subtest("reset-fd")
- check_workarounds(device, GPU_RESET, FDS);
-
- igt_subtest("suspend-resume")
- check_workarounds(device, SUSPEND_RESUME, 0);
-
- igt_subtest("suspend-resume-context")
- check_workarounds(device, SUSPEND_RESUME, CONTEXT);
-
- igt_subtest("suspend-resume-fd")
- check_workarounds(device, SUSPEND_RESUME, FDS);
+ for (op = ops; op->name; op++) {
+ for (m = modes; m->name; m++) {
+ igt_subtest_f("%s%s", op->name, m->name)
+ check_workarounds(device, op->op, m->flags);
+ }
+ }
}
--
2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH igt v2 5/5] igt/gem_workarounds: Add hibernation coverage
2017-10-04 14:25 [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context Chris Wilson
` (2 preceding siblings ...)
2017-10-04 14:25 ` [PATCH igt v2 4/5] igt/gem_workarounds: Reduce manual list to combinatorial loops Chris Wilson
@ 2017-10-04 14:25 ` Chris Wilson
2017-10-04 18:21 ` ✗ Fi.CI.BAT: warning for series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context Patchwork
2017-10-05 11:47 ` ✗ Fi.CI.IGT: " Patchwork
5 siblings, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2017-10-04 14:25 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
tests/gem_workarounds.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index 4263f1df..f957fc6d 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -37,6 +37,7 @@ static int gen;
enum operation {
GPU_RESET,
SUSPEND_RESUME,
+ HIBERNATE_RESUME,
SIMPLE_READ,
};
@@ -64,12 +65,6 @@ static struct write_only_list {
static struct intel_wa_reg *wa_regs;
static int num_wa_regs;
-static void test_suspend_resume(void)
-{
- igt_info("Suspending the device ...\n");
- igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
-}
-
static bool write_only(const uint32_t addr)
{
int i;
@@ -198,7 +193,13 @@ static void check_workarounds(int fd, enum operation op, unsigned int flags)
break;
case SUSPEND_RESUME:
- test_suspend_resume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
+ break;
+
+ case HIBERNATE_RESUME:
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
break;
case SIMPLE_READ:
@@ -226,6 +227,7 @@ igt_main
{ "basic-read", SIMPLE_READ },
{ "reset", GPU_RESET },
{ "suspend-resume", SUSPEND_RESUME },
+ { "hibernate-resume", HIBERNATE_RESUME },
{ }
}, *op;
const struct {
--
2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* ✗ Fi.CI.BAT: warning for series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context
2017-10-04 14:25 [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context Chris Wilson
` (3 preceding siblings ...)
2017-10-04 14:25 ` [PATCH igt v2 5/5] igt/gem_workarounds: Add hibernation coverage Chris Wilson
@ 2017-10-04 18:21 ` Patchwork
2017-10-05 11:47 ` ✗ Fi.CI.IGT: " Patchwork
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2017-10-04 18:21 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context
URL : https://patchwork.freedesktop.org/series/31388/
State : warning
== Summary ==
IGT patchset tested on top of latest successful build
7f93a2632aae7c5865823b4a2fa4cd8c2a1c0977 Update NEWS, bump version to 1.20.
with latest DRM-Tip kernel build CI_DRM_3174
ce6163933673 drm-tip: 2017y-10m-04d-16h-49m-44s UTC integration manifest
Testlist changes:
+igt@gem_workarounds@basic-read-context
+igt@gem_workarounds@basic-read-fd
+igt@gem_workarounds@hibernate-resume
+igt@gem_workarounds@hibernate-resume-context
+igt@gem_workarounds@hibernate-resume-fd
+igt@gem_workarounds@reset-context
+igt@gem_workarounds@reset-fd
+igt@gem_workarounds@suspend-resume-context
+igt@gem_workarounds@suspend-resume-fd
Test gem_workarounds:
Subgroup basic-read:
pass -> SKIP (fi-blb-e6850)
pass -> SKIP (fi-pnv-d510)
pass -> SKIP (fi-bwr-2160)
pass -> SKIP (fi-elk-e7500)
pass -> SKIP (fi-ilk-650)
pass -> SKIP (fi-snb-2520m)
pass -> SKIP (fi-snb-2600)
pass -> SKIP (fi-ivb-3520m)
pass -> SKIP (fi-ivb-3770)
pass -> SKIP (fi-byt-j1900)
pass -> SKIP (fi-byt-n2820)
pass -> SKIP (fi-hsw-4770)
pass -> SKIP (fi-hsw-4770r)
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:461s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:475s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:401s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:582s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:289s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:535s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:541s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:560s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:536s
fi-cfl-s total:289 pass:256 dwarn:1 dfail:0 fail:0 skip:32 time:561s
fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:637s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:438s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:602s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:439s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:422s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:468s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:503s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:479s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:503s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:587s
fi-kbl-7567u total:289 pass:265 dwarn:4 dfail:0 fail:0 skip:20 time:494s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:599s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:662s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:478s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:615s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:536s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:520s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:469s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:592s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:441s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_298/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH igt v2 2/5] igt/gem_workarounds: Also exercise fresh contexts not the persistent default
2017-10-04 14:25 ` [PATCH igt v2 2/5] igt/gem_workarounds: Also exercise fresh contexts not the persistent default Chris Wilson
@ 2017-10-05 8:18 ` Mika Kuoppala
0 siblings, 0 replies; 9+ messages in thread
From: Mika Kuoppala @ 2017-10-05 8:18 UTC (permalink / raw)
To: Chris Wilson, intel-gfx
Chris Wilson <chris@chris-wilson.co.uk> writes:
> v2: Actually exercise the new context
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> ---
> tests/gem_workarounds.c | 35 +++++++++++++++++++++++++++--------
> 1 file changed, 27 insertions(+), 8 deletions(-)
>
> diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
> index c669a5cd..234fef0a 100644
> --- a/tests/gem_workarounds.c
> +++ b/tests/gem_workarounds.c
> @@ -87,7 +87,7 @@ static bool write_only(const uint32_t addr)
>
> #define MI_STORE_REGISTER_MEM (0x24 << 23)
>
> -static int workaround_fail_count(int fd)
> +static int workaround_fail_count(int fd, uint32_t ctx)
> {
> struct drm_i915_gem_exec_object2 obj[2];
> struct drm_i915_gem_relocation_entry *reloc;
> @@ -131,6 +131,7 @@ static int workaround_fail_count(int fd)
> memset(&execbuf, 0, sizeof(execbuf));
> execbuf.buffers_ptr = to_user_pointer(obj);
> execbuf.buffer_count = 2;
> + execbuf.rsvd1 = ctx;
> gem_execbuf(fd, &execbuf);
>
> gem_set_domain(fd, obj[0].handle, I915_GEM_DOMAIN_CPU, 0);
> @@ -167,9 +168,15 @@ static int workaround_fail_count(int fd)
> return fail_count;
> }
>
> -static void check_workarounds(int fd, enum operation op)
> +#define CONTEXT 0x1
> +static void check_workarounds(int fd, enum operation op, unsigned int flags)
> {
> - igt_assert_eq(workaround_fail_count(fd), 0);
> + uint32_t ctx = 0;
> +
> + if (flags & CONTEXT)
> + ctx = gem_context_create(fd);
> +
> + igt_assert_eq(workaround_fail_count(fd, ctx), 0);
>
> switch (op) {
> case GPU_RESET:
> @@ -181,13 +188,16 @@ static void check_workarounds(int fd, enum operation op)
> break;
>
> case SIMPLE_READ:
> - return;
> + break;
>
> default:
> igt_assert(0);
> }
>
> - igt_assert_eq(workaround_fail_count(fd), 0);
> + igt_assert_eq(workaround_fail_count(fd, ctx), 0);
> +
> + if (ctx)
> + gem_context_destroy(fd, ctx);
> }
>
> igt_main
> @@ -233,11 +243,20 @@ igt_main
> }
>
> igt_subtest("basic-read")
> - check_workarounds(device, SIMPLE_READ);
> + check_workarounds(device, SIMPLE_READ, 0);
> +
> + igt_subtest("basic-read-context")
> + check_workarounds(device, SIMPLE_READ, CONTEXT);
>
> igt_subtest("reset")
> - check_workarounds(device, GPU_RESET);
> + check_workarounds(device, GPU_RESET, 0);
> +
> + igt_subtest("reset-context")
> + check_workarounds(device, GPU_RESET, CONTEXT);
>
> igt_subtest("suspend-resume")
> - check_workarounds(device, SUSPEND_RESUME);
> + check_workarounds(device, SUSPEND_RESUME, 0);
> +
> + igt_subtest("suspend-resume-context")
> + check_workarounds(device, SUSPEND_RESUME, CONTEXT);
> }
> --
> 2.14.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* ✗ Fi.CI.IGT: warning for series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context
2017-10-04 14:25 [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context Chris Wilson
` (4 preceding siblings ...)
2017-10-04 18:21 ` ✗ Fi.CI.BAT: warning for series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context Patchwork
@ 2017-10-05 11:47 ` Patchwork
2017-10-05 11:57 ` Chris Wilson
5 siblings, 1 reply; 9+ messages in thread
From: Patchwork @ 2017-10-05 11:47 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context
URL : https://patchwork.freedesktop.org/series/31388/
State : warning
== Summary ==
Test gem_flink_race:
Subgroup flink_close:
fail -> PASS (shard-hsw) fdo#102655
Test gem_workarounds:
Subgroup reset:
pass -> SKIP (shard-hsw)
Subgroup suspend-resume:
pass -> SKIP (shard-hsw)
Subgroup basic-read:
pass -> SKIP (shard-hsw)
Test perf:
Subgroup blocking:
fail -> PASS (shard-hsw) fdo#102252
Test drv_module_reload:
Subgroup basic-reload:
pass -> DMESG-WARN (shard-hsw) fdo#102707
fdo#102655 https://bugs.freedesktop.org/show_bug.cgi?id=102655
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
fdo#102707 https://bugs.freedesktop.org/show_bug.cgi?id=102707
shard-hsw total:2439 pass:1328 dwarn:8 dfail:0 fail:7 skip:1096 time:10182s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_298/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: ✗ Fi.CI.IGT: warning for series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context
2017-10-05 11:47 ` ✗ Fi.CI.IGT: " Patchwork
@ 2017-10-05 11:57 ` Chris Wilson
0 siblings, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2017-10-05 11:57 UTC (permalink / raw)
To: Patchwork; +Cc: intel-gfx
Quoting Patchwork (2017-10-05 12:47:28)
> == Series Details ==
>
> Series: series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context
> URL : https://patchwork.freedesktop.org/series/31388/
> State : warning
>
> == Summary ==
>
> Test gem_flink_race:
> Subgroup flink_close:
> fail -> PASS (shard-hsw) fdo#102655
> Test gem_workarounds:
> Subgroup reset:
> pass -> SKIP (shard-hsw)
> Subgroup suspend-resume:
> pass -> SKIP (shard-hsw)
> Subgroup basic-read:
> pass -> SKIP (shard-hsw)
> Test perf:
> Subgroup blocking:
> fail -> PASS (shard-hsw) fdo#102252
> Test drv_module_reload:
> Subgroup basic-reload:
> pass -> DMESG-WARN (shard-hsw) fdo#102707
>
> fdo#102655 https://bugs.freedesktop.org/show_bug.cgi?id=102655
> fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
> fdo#102707 https://bugs.freedesktop.org/show_bug.cgi?id=102707
>
> shard-hsw total:2439 pass:1328 dwarn:8 dfail:0 fail:7 skip:1096 time:10182s
We fix up the failures on bxt!
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-10-05 11:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-04 14:25 [PATCH igt v2 1/5] igt/gem_workarounds: Read the workaround registers from the active context Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 2/5] igt/gem_workarounds: Also exercise fresh contexts not the persistent default Chris Wilson
2017-10-05 8:18 ` Mika Kuoppala
2017-10-04 14:25 ` [PATCH igt v2 3/5] igt/gem_workarounds: Also test new fd (implicit default context) Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 4/5] igt/gem_workarounds: Reduce manual list to combinatorial loops Chris Wilson
2017-10-04 14:25 ` [PATCH igt v2 5/5] igt/gem_workarounds: Add hibernation coverage Chris Wilson
2017-10-04 18:21 ` ✗ Fi.CI.BAT: warning for series starting with [v2,1/5] igt/gem_workarounds: Read the workaround registers from the active context Patchwork
2017-10-05 11:47 ` ✗ Fi.CI.IGT: " Patchwork
2017-10-05 11:57 ` Chris Wilson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.