[PATCH i-g-t] tests/intel/oa: Check exec_queue is usable after closing OA stream

Dixit, Ashutosh ashutosh.dixit at intel.com
Tue Oct 22 20:45:26 UTC 2024


On Mon, 14 Oct 2024 07:19:13 -0700, Kamil Konieczny wrote:
>
> Hi Ashutosh,
> On 2024-09-20 at 17:45:06 -0700, Ashutosh Dixit wrote:
>
> please fix subject:
>
> tests/intel/oa: Check exec_queue is usable after closing OA stream
>
> should be:
>
> tests/intel/xe_oa: Check exec_queue is usable after closing OA stream

Sure. Will change in all pending patches.

>
> > Add a test case to verify that batch buffers submitted on an exec_queue,
>   ^^^^^^^^^^^^^^^
> imho here:
> Add repeated verification for ...
> or:
> Repeat twice a verification for usablility of batch buffers....

Probably not, latest version has a 16 loop.

>
> > after closing the OA stream, do indeed complete. This test is in related to
> > https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2821 where this was
> > first noticed.
> >
> > Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
> > ---
> >  tests/intel/xe_oa.c | 23 ++++++++++++++++++++++-
> >  1 file changed, 22 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
> > index 506646789c..eb19fdec97 100644
> > --- a/tests/intel/xe_oa.c
> > +++ b/tests/intel/xe_oa.c
> > @@ -3018,13 +3018,34 @@ test_mi_rpc(struct drm_xe_engine_class_instance *hwe)
> >	igt_assert_neq(report32[format.b_off >> 2], 0x80808080);
> >	igt_assert_eq(report32[format_size_32], 0x80808080);
> >
> > +	intel_buf_unmap(buf);
> > +	__perf_close(stream_fd);
> > +
> > +	/*
> > +	 * Re-do MI_RPC after closing perf stream, and check batch buffers
> > +	 * submitted on exec_queue still complete
> > +	 */
>
> Instead of copy-paste, wouldn't it be better to write a function
> and call it twice here?

Probably not worth it either. Anyway we need to bottom out on the kernel/HW
issue first, so unlikely that this will get merged till that happens.

Thanks.
--
Ashutosh


>
> > +	buf_map(drm_fd, buf, true);
> > +	memset(buf->ptr, 0x80, 4096);
> > +	intel_buf_unmap(buf);
> > +
> > +	intel_bb_flush_render(ibb);
> > +	intel_bb_sync(ibb);
> > +
> > +	buf_map(drm_fd, buf, false);
> > +	report32 = buf->ptr;
> > +	format_size_32 = format.size >> 2;
> > +	dump_report(report32, format_size_32, "mi-rpc");
> > +
> > +	igt_assert_eq(report32[0], 0x80808080);
> > +	igt_assert_eq(oa_timestamp(report32, test_set->perf_oa_format), 0x80808080);
> > +
> >	intel_buf_unmap(buf);
> >	intel_buf_destroy(buf);
> >	intel_bb_destroy(ibb);
> >	xe_exec_queue_destroy(drm_fd, ctx_id);
> >	xe_vm_destroy(drm_fd, vm);
> >	buf_ops_destroy(bops);
> > -	__perf_close(stream_fd);
> >  }
> >
> >  static void
> > --
> > 2.41.0
> >


More information about the igt-dev mailing list