[PATCH 07/16] drm/xe/oa: OA stream initialization (OAG)

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri Feb 9 08:14:13 UTC 2024


On 09/02/2024 09:08, Dixit, Ashutosh wrote:
> On Thu, 08 Feb 2024 22:23:30 -0800, Lionel Landwerlin wrote:
> Hi Lionel,
>
>>> +static int xe_oa_emit_oa_config(struct xe_oa_stream *stream)
>>> +{
>>> +#define NOA_PROGRAM_ADDITIONAL_DELAY_US 500
>>> +	struct xe_oa_config_bo *oa_bo;
>>> +	int err, us = NOA_PROGRAM_ADDITIONAL_DELAY_US;
>>> +
>>> +	oa_bo = xe_oa_alloc_config_buffer(stream);
>>> +	if (IS_ERR(oa_bo)) {
>>> +		err = PTR_ERR(oa_bo);
>>> +		goto exit;
>>> +	}
>>> +
>>> +	err = xe_oa_submit_bb(stream, oa_bo->bb);
>>> +
>>> +	/* Additional empirical delay needed for NOA programming after registers are written */
>>> +	usleep_range(us, 2 * us);
>> Looks like the entire oa_config emission is synchronous.
> Yes that is indeed the case in this patchset.
>
>> That's a difference from i915 where we could just pipeline all the config
>> changes with perf queries in between.
>>
>> If there was a mechanism to return a syncobj in this ioctl, we could do the
>> wait from userspace and/or pipeline more submissions.
> That is the plan. To expose syncobj's in OA properties and make also make
> the oa_config emission asynchronous. But have not been able to get to it
> yet (IGT's are mostly getting ready, but now we may also need to add
> support for GPUVis before we can merge these patches, if we can't get a
> temporary waiver).
>
> So the direction right now is to get the current patchset merged before
> adding more features (like the syncobj).


Thanks,


Any idea when that will happen?

I suppose you'll have to define a new ioctl for this?


-Lionel


>
> (Also, separately I'm trying to figure out if a delay similar to the NOA
> programming delay is really needed when we have PES registers, the case for
> Xe2+. Looks like it might not be, but still needs to be confirmed).
>
> Thanks.
> --
> Ashutosh




More information about the Intel-xe mailing list