[Intel-gfx] [PATCH i-g-t v2] tests/gem_ringfill: Add {render, blitter}-forked subtests.
Chris Wilson
chris at chris-wilson.co.uk
Thu Jun 25 05:49:02 PDT 2015
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.kuoppala at linux.intel.com>
> Signed-off-by: Joonas Lahtinen <joonas.lahtinen at 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
More information about the Intel-gfx
mailing list