On Thu, Jun 25, 2015 at 03:04:44PM +0300, Joonas Lahtinen wrote: > Add forking subtests to gem_ringfill. Tests cause consistent GPU > hangs on SKL. > > Cc: Mika Kuoppala <mika.kuopp...@linux.intel.com> > Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89959 > --- > tests/gem_ringfill.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/tests/gem_ringfill.c b/tests/gem_ringfill.c > index 85b01ea..1b93a03 100644 > --- a/tests/gem_ringfill.c > +++ b/tests/gem_ringfill.c > @@ -241,6 +241,28 @@ igt_main > } > igt_stop_signal_helper(); > > + igt_subtest("blitter-forked") { > + igt_fork(child, 1) {
One child? Only a single child is required to provoke the bug? So what's the difference between calling check_ring() in the child and the parent? > + check_ring(bufmgr, batch, "blt", blt_copy); > + } > + igt_waitchildren(); > + } > + > + /* Strictly only required on architectures with a separate BLT ring, > + * but lets stress everybody. > + */ > + igt_subtest("render-forked") { > + igt_render_copyfunc_t copy; > + > + copy = igt_get_render_copyfunc(batch->devid); > + igt_require(copy); > + > + igt_fork(child, 1) { > + check_ring(bufmgr, batch, "render", copy); > + } > + igt_waitchildren(); > + } One more for forked: igt_subtest("all-forked") { for_each_ring() { if (copy(ring)) == NULL) continue; igt_fork(child, N) check_ring(bufmgr, batch, name(ring), copy); } igt_waitchildren() Other tasks required for running forked is to display the interactive progress bar, bufmgr should be instantiated per child. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx