[Intel-gfx] [PATCH 6/6] drm/i915/icl: Support co-existence between per-context SSEU and OA
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Mon Oct 1 15:05:37 UTC 2018
On 01/10/2018 15:18, Lionel Landwerlin wrote:
> On 01/10/2018 13:42, Tvrtko Ursulin wrote:
>>
>> On 01/10/2018 12:06, Lionel Landwerlin wrote:
>>> On 01/10/2018 12:20, Tvrtko Ursulin wrote:
>>>>
>>>> On 01/10/2018 10:50, Lionel Landwerlin wrote:
>>>>> On 17/09/2018 13:30, Tvrtko Ursulin wrote:
>>>>>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>>>>>
>>>>>> When OA is active we want to lock the powergating configuration,
>>>>>> but on
>>>>>> Icelake, users like the media stack will have issues if we lock to
>>>>>> the
>>>>>> full device configuration.
>>>>>>
>>>>>> Instead lock to a subset of (sub)slices which are currently a known
>>>>>> working configuration for all users.
>>>>>>
>>>>>> v2:
>>>>>> * Fix commit message spelling.
>>>>>>
>>>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>>>>> Cc: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
>>>>>> ---
>>>>>> drivers/gpu/drm/i915/intel_lrc.c | 25 ++++++++++++++++++++-----
>>>>>> 1 file changed, 20 insertions(+), 5 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/i915/intel_lrc.c
>>>>>> b/drivers/gpu/drm/i915/intel_lrc.c
>>>>>> index b5603e977a3f..cded1f1d9ec2 100644
>>>>>> --- a/drivers/gpu/drm/i915/intel_lrc.c
>>>>>> +++ b/drivers/gpu/drm/i915/intel_lrc.c
>>>>>> @@ -2521,13 +2521,28 @@ u32 gen8_make_rpcs(struct drm_i915_private
>>>>>> *i915, struct intel_sseu *req_sseu)
>>>>>> /*
>>>>>> * If i915/perf is active, we want a stable powergating
>>>>>> configuration
>>>>>> - * on the system. The most natural configuration to take in
>>>>>> that case
>>>>>> - * is the default (i.e maximum the hardware can do).
>>>>>> + * on the system.
>>>>>> + *
>>>>>> + * We could choose full enablement, but on ICL we know there
>>>>>> are use
>>>>>> + * cases which disable slices for functional, apart for
>>>>>> performance
>>>>>> + * reasons. So in this case we select a known stable subset.
>>>>>> */
>>>>>> - if (unlikely(i915->perf.oa.exclusive_stream))
>>>>>> - ctx_sseu = intel_device_default_sseu(i915);
>>>>>> - else
>>>>>> + if (!i915->perf.oa.exclusive_stream) {
>>>>>> ctx_sseu = *req_sseu;
>>>>>> + } else {
>>>>>> + ctx_sseu = intel_device_default_sseu(i915);
>>>>>> +
>>>>>> + if (IS_GEN11(i915)) {
>>>>>> + /*
>>>>>> + * We only need subslice count so it doesn't matter
>>>>>> + * which ones we select - just turn of low bits in the
>>>>>
>>>>> s/turn of/turn off/
>>>>
>>>> Yep, thanks.
>>>>
>>>>>
>>>>>> + * amount of half of all available subslices per slice.
>>>>>> + */
>>>>>> + ctx_sseu.subslice_mask =
>>>>>> + ~(~0 << (hweight8(ctx_sseu.subslice_mask) / 2));
>>>>>
>>>>>
>>>>> I would go with :
>>>>>
>>>>>
>>>>> ctx_sseu.subslice_mask = ctx_sseu.subslice_mask & 0xf;
>>>>>
>>>>>
>>>>> Documentation says that the first 4 subslices are the "big" ones
>>>>> (gathered from the fusing register fields which go from
>>>>> slice0-subslice[0-3] then slice1-subslice[0-3], etc...), so this
>>>>> should be equally media/3d capable.
>>>>
>>>> Doesn't work I think - one 1x6x8 part I've seen has a subslice mask
>>>> of 0b11111100 and there we want to have three subslices enabled.
>>>>
>>>> Regards,
>>>>
>>>> Tvrtko
>>>
>>>
>>> Thanks, then the fusing fields don't match for a big/small sets of
>>> subslices.
>>>
>>> I guess the fusing might be in this pattern (Small/Big) : SBSBSBSB
>>>
>>> I was hoping we could know so that we program the powergating at the
>>> most capable configuration.
>>
>> It will be the most capable configuration. Did you forget the RPCS
>> register in ICL works with counts and not masks? According the that
>> Bspec table we cannot select anything but the most capable configuration.
>>
>> Regards,
>>
>> Tvrtko
>>
> Sorry, I must have forgotten. I was trying to read the docs again
> looking for something that said the fusing always happened in pairs.
>
>
> I'm confident we need to limit the subslices when OA is on and if you
> know where the details are written down (maybe add the bspec number?),
> this is :
Hm I was certain I have put the link in some time ago, but you are
right, I have not so will do!
> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Thanks!
Regards,
Tvrtko
More information about the Intel-gfx
mailing list