Introduce a new 2-process fork test that is bound to a single cpu to
exercise contention during pagefaults. This is a much lighter variant of
the all-cpus test intended to be viable even on the legendary frozen
lakes of molasses.

References: https://bugs.freedesktop.org/show_bug.cgi?id=110882
Signed-off-by: Chris Wilson <[email protected]>
Cc: Mika Kuoppala <[email protected]>
Cc: Martin Peres <[email protected]>
---
 tests/i915/gem_mmap_gtt.c    | 36 +++++++++++++++++++++++++-----------
 tests/intel-ci/blacklist.txt |  2 +-
 2 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/tests/i915/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
index ac439cdf8..0428a1372 100644
--- a/tests/i915/gem_mmap_gtt.c
+++ b/tests/i915/gem_mmap_gtt.c
@@ -792,9 +792,6 @@ test_huge_copy(int fd, int huge, int tiling_a, int 
tiling_b, int ncpus)
        uint64_t huge_object_size, i;
        unsigned mode = CHECK_RAM;
 
-       igt_fail_on_f(intel_gen(devid) >= 11 && ncpus > 1,
-                     "Please adjust your expectations, 
https://bugs.freedesktop.org/show_bug.cgi?id=110882\n";);
-
        switch (huge) {
        case -2:
                huge_object_size = gem_mappable_aperture_size() / 4;
@@ -1138,17 +1135,34 @@ igt_main
                        for (const struct copy_mode *m = copy_modes; m->suffix; 
m++) {
                                igt_subtest_f("%s-copy%s", s->prefix, m->suffix)
                                        test_huge_copy(fd,
-                                                       s->size,
-                                                       m->tiling_x,
-                                                       m->tiling_y,
-                                                       1);
+                                                      s->size,
+                                                      m->tiling_x,
+                                                      m->tiling_y,
+                                                      1);
+
+                               igt_subtest_f("cpuset-%s-copy%s", s->prefix, 
m->suffix) {
+                                       cpu_set_t cpu, old;
+
+                                       sched_getaffinity(0, sizeof(old), &old);
+
+                                       CPU_ZERO(&cpu);
+                                       CPU_SET(0, &cpu);
+                                       igt_assert(sched_setaffinity(0, 
sizeof(cpu), &cpu) == 0);
+                                       test_huge_copy(fd,
+                                                      s->size,
+                                                      m->tiling_x,
+                                                      m->tiling_y,
+                                                      2);
+
+                                       igt_assert(sched_setaffinity(0, 
sizeof(old), &old) == 0);
+                               }
 
                                igt_subtest_f("forked-%s-copy%s", s->prefix, 
m->suffix)
                                        test_huge_copy(fd,
-                                                       s->size,
-                                                       m->tiling_x,
-                                                       m->tiling_y,
-                                                       ncpus);
+                                                      s->size,
+                                                      m->tiling_x,
+                                                      m->tiling_y,
+                                                      ncpus);
                        }
        }
 
diff --git a/tests/intel-ci/blacklist.txt b/tests/intel-ci/blacklist.txt
index 8e3dafa98..5fa91105f 100644
--- a/tests/intel-ci/blacklist.txt
+++ b/tests/intel-ci/blacklist.txt
@@ -47,7 +47,7 @@ igt@gem_gtt_hog(@.*)?
 igt@gem_gtt_speed(@.*)?
 igt@gem_hangcheck_forcewake(@.*)?
 igt@gem_lut_handle(@.*)?
-igt@gem_mmap_gtt@.*(huge|swap|clflush).*
+igt@gem_mmap_gtt@.*(huge|swap|clflush|forked).*
 igt@gem_mmap@.*(swap|huge).*
 igt@gem_mocs_settings@.*(suspend|hibernate).*
 igt@gem_pin(@.*)?
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to