[igt-dev] [PATCH i-g-t] lib/i915: Fix gem_has_execlists to match description
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Tue Oct 19 08:53:06 UTC 2021
On 19/10/2021 00:40, John Harrison wrote:
> On 10/18/2021 00:43, Tvrtko Ursulin wrote:
>> On 16/10/2021 00:57, John Harrison wrote:
>>> On 10/15/2021 16:39, Dixit, Ashutosh wrote:
>>>> On Fri, 15 Oct 2021 16:42:12 -0700, John Harrison wrote:
>>>>> On 10/15/2021 16:38, Ashutosh Dixit wrote:
>>>>>> Driver is using execlists if it is not using GuC submission.
>>>>>> GEM_SUBMISSION_EXECLISTS flag indicates if execlist submission is
>>>>>> available, not if it is being used by the driver.
>>>>>>
>>>>>> Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
>>>>>> ---
>>>>>> lib/i915/gem_submission.c | 2 +-
>>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
>>>>>> index 2627b802cfb..4312a73bd85 100644
>>>>>> --- a/lib/i915/gem_submission.c
>>>>>> +++ b/lib/i915/gem_submission.c
>>>>>> @@ -153,7 +153,7 @@ bool gem_has_semaphores(int fd)
>>>>>> */
>>>>>> bool gem_has_execlists(int fd)
>>>>>> {
>>>>>> - return gem_submission_method(fd) & GEM_SUBMISSION_EXECLISTS;
>>>>>> + return !gem_has_guc_submission(fd);
>>>>> Don't we use ring submission on older platforms?
>>>> Hmm, I wasn't aware that there was yet another submission method :/
>>>>
>>>> So execlist submission is only available for gen >= 8 as the code
>>>> says, in
>>>> case anyone knows?
>>> Yes. Execlists was new feature of the hardware not all that long ago
>>> (ELSP and all that). Gen8 sounds plausible.
>>
>> Yes Gen8+.
>>
>>> Of course, it all depends why the code is asking the question? Does
>>> it really need to know what the submission hardware is? Or is it
>>> actually asking about the scheduling algorithm (as is the case for
>>> gem_exec_fair). Or something else entirely? The scheduler question is
>>> going to change again when we move to using the DRM scheduler instead
>>> of our own private one in the execlist code. Currently though, I
>>> would assume we use the execlist scheduler for ring submission but
>>> certainly not for GuC submission (because the scheduler is in the
>>> hardware).
>>
>> Nope, no scheduling with ringbuffer backend.
>>
>> There is I915_PARAM_HAS_SCHEDULER and respective IGT helpers to query
>> what kind of scheduling is supported on the device in question.
>>
>> It will be on a test per test basis why it is asking the question and
>> what would be the appropriate test.
>>
> Are you saying that we need to add an extra flag (or even enum field) to
> say what type of scheduler is supported? As in 'fair', 'round robin',
> 'DRM', etc.?
No strong opinion. I was just saying what exists today, and noticing
gem_exec_fair does not only fail with the GuC.
If a new feature test is needed, which is not possible via all that is
currently available, then the question is how/where to expose the data.
But in principle is it not okay even to have a failing test since ci
known failure list takes care of that? Because I know there is a
customer requirement for fair scheduling already so it sounds better to
highlight in the CI matrix we are not there yet.
Regards,
Tvrtko
> I'm not seeing any scheduling _CAP flag that would be relevant to
> differentiating between the GuC and the execlist scheduler implementations.
>
> John.
>
>
>> Regards,
>>
>> Tvrtko
>>
>>>
>>> John.
>>>
>>>>
>>>>> Isn't the better fix to just not set the EXECLIST flag when GuC
>>>>> submission is detected?
>>>> Yes, let me post this patch too. Thanks!
>>>
>
More information about the igt-dev
mailing list