[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