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 <[email protected]>
> Signed-off-by: Joonas Lahtinen <[email protected]>
> 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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx