[PATCH 1/1] drm/amdgpu: return early on error while setting bar0 memtype
Lazar, Lijo
lijo.lazar at amd.com
Tue Nov 2 11:18:00 UTC 2021
On 11/2/2021 4:39 PM, Christian König wrote:
> Am 02.11.21 um 11:11 schrieb Das, Nirmoy:
>>
>> On 11/2/2021 9:00 AM, Lazar, Lijo wrote:
>>>
>>>
>>> On 10/29/2021 8:39 PM, Nirmoy Das wrote:
>>>> We set WC memtype for aper_base but don't check return value
>>>> of arch_io_reserve_memtype_wc(). Be more defensive and return
>>>> early on error.
>>>>
>>>> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
>>>> ---
>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 7 ++++++-
>>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>>>> index 073ba2af0b9c..6b25982a9077 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>>>> @@ -1032,9 +1032,14 @@ int amdgpu_bo_init(struct amdgpu_device *adev)
>>>> /* On A+A platform, VRAM can be mapped as WB */
>>>> if (!adev->gmc.xgmi.connected_to_cpu) {
>>>> /* reserve PAT memory space to WC for VRAM */
>>>> - arch_io_reserve_memtype_wc(adev->gmc.aper_base,
>>>> + int r = arch_io_reserve_memtype_wc(adev->gmc.aper_base,
>>>> adev->gmc.aper_size);
>>>
>>> BTW, isn't it more appropriate to use visible vram size? There are
>>> cases where pci resize rounds aperture to the next higher size > size
>>> of actual VRAM.
>>
>>
>> Good point, I will update this one and send again.
>
> Not a good idea at all.
>
> The aperture size is rounded up to the next power of two and that's
> exactly what we should stick to if we don't want to get an error code in
> return.
>
PCI rebar sizes have its restrictions. It jumps from 4G to 8G to 16G and
so on. Why we need to map 16G for a card with 12G VRAM? BTW, how it
increases the failure chance - this mapping happens in page sizes, right?
Thanks,
Lijo
> Regards,
> Christian.
>
>>
>>
>> Regards,
>>
>> Nirmoy
>>
>>
>>>
>>> Thanks,
>>> Lijo
>>>> + if (r) {
>>>> + DRM_ERROR("Unable to set WC memtype for the aperture
>>>> base\n");
>>>> + return r;
>>>> + }
>>>> +
>>>> /* Add an MTRR for the VRAM */
>>>> adev->gmc.vram_mtrr = arch_phys_wc_add(adev->gmc.aper_base,
>>>> adev->gmc.aper_size);
>>>>
>
More information about the amd-gfx
mailing list