[PATCH 2/3] drm/amdgpu: enabled software IH ring for Vega
Christian König
ckoenig.leichtzumerken at gmail.com
Tue Nov 3 13:26:31 UTC 2020
Am 02.11.20 um 20:58 schrieb Christian König:
> Am 02.11.20 um 19:59 schrieb Felix Kuehling:
>> Am 2020-11-02 um 1:53 p.m. schrieb Alex Deucher:
>>> On Mon, Nov 2, 2020 at 6:34 AM Christian König
>>> <ckoenig.leichtzumerken at gmail.com> wrote:
>>>> Seems like we won't get the hardware IH1/2 rings on Vega20 working.
>>>>
>>>> Signed-off-by: Christian König <christian.koenig at amd.com>
>>>> ---
>>>> drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 7 +++++++
>>>> 1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
>>>> b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
>>>> index 407c6093c2ec..cef61dd46a37 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
>>>> @@ -91,6 +91,9 @@ static void vega10_ih_enable_interrupts(struct
>>>> amdgpu_device *adev)
>>>> }
>>>> adev->irq.ih2.enabled = true;
>>>> }
>>>> +
>>>> + if (adev->irq.ih_soft.ring_size)
>>>> + adev->irq.ih_soft.enabled = true;
>>>> }
>>>>
>>>> /**
>>>> @@ -606,6 +609,10 @@ static int vega10_ih_sw_init(void *handle)
>>>> adev->irq.ih2.use_doorbell = true;
>>>> adev->irq.ih2.doorbell_index = (adev->doorbell_index.ih +
>>>> 2) << 1;
>>>>
>>>> + r = amdgpu_ih_ring_init(adev, &adev->irq.ih_soft,
>>>> PAGE_SIZE, true);
>>>> + if (r)
>>>> + return r;
>>>> +
>>> Should we only enable this on vega20?
>> It affects other GPUs as well. Including probably some Navi GPUs. We'll
>> probably need a similar change in navi10_ih.c.
And gmc_v10.c doesn't even have the recoverable page fault handling yet.
Going to add that as well.
Christian.
>> Is there a way to reliably detect whether IH redirection works. Or do we
>> need to allocate the soft IH ring unconditionally?
>
> We can allocate it unconditionally on Vega and Navi, it's just a
> single page ring buffer which is only used when needed.
>
> What worries me more is that testing shows that I can't even enable IV
> tracing or risk that a single CPU becomes so busy with processing IVs
> that I get "stuck for 23 seconds" warnings.
>
> We *really* need the hardware to work correctly either by using the
> CAM for filtering page faults or by redirecting them to the different
> IH ring.
>
> Regards,
> Christian.
>
>>
>> Regards,
>> Felix
>>
>>
>>> Alex
>>>
>>>
>>>> r = amdgpu_irq_init(adev);
>>>>
>>>> return r;
>>>> --
>>>> 2.25.1
>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
More information about the amd-gfx
mailing list