[PATCH 07/10] drm/amdgpu:free CSA in unified place

Christian König ckoenig.leichtzumerken at gmail.com
Tue Nov 14 15:48:57 UTC 2017


Thought so, in this case the patch is Reviewed-by: Christian König 
<christian.koenig at amd.com>.

Regards,
Christian.

Am 14.11.2017 um 16:02 schrieb Liu, Monk:
> Yeah CSA is allocated right after in GMC hw init (and after WB_INIT)
> So we can put the free of it right before WB_INIT, thus avoiding doing it in each GFX IP's sw_init
>
>
>
> -----Original Message-----
> From: Christian König [mailto:ckoenig.leichtzumerken at gmail.com]
> Sent: 2017年11月14日 19:55
> To: Liu, Monk <Monk.Liu at amd.com>; amd-gfx at lists.freedesktop.org
> Subject: Re: [PATCH 07/10] drm/amdgpu:free CSA in unified place
>
> Am 14.11.2017 um 10:07 schrieb Monk Liu:
>> instead of doing it in each GFX ip's sw_fini
> Mhm, is that allocated in the same way as well?
>
>> Change-Id: Idf0fd500d4fc385cf7a930cc56305070c937bf20
>> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
>> ---
>>    drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 +
>>    drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c   | 6 ++++++
>>    drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h   | 1 +
>>    drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c      | 1 -
>>    drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c      | 1 -
>>    5 files changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> index c13b493..ccb33ef 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -1865,6 +1865,7 @@ static int amdgpu_fini(struct amdgpu_device *adev)
>>    		if (!adev->ip_blocks[i].status.hw)
>>    			continue;
>>    		if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
>> +			amdgpu_free_static_csa(adev);
>>    			amdgpu_wb_fini(adev);
>>    			amdgpu_vram_scratch_fini(adev);
>>    		}
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
>> index 67fd110..118c84c 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
>> @@ -47,6 +47,12 @@ int amdgpu_allocate_static_csa(struct amdgpu_device *adev)
>>    	return 0;
>>    }
>>    
>> +void amdgpu_free_static_csa(struct amdgpu_device *adev) {
>> +	amdgpu_bo_free_kernel(&adev->virt.csa_obj,
>> +						&adev->virt.csa_vmid0_addr,
>> +						NULL);
> The coding style here looks odd.
>
> Christian.
>
>> +}
>> +
>>    /*
>>     * amdgpu_map_static_csa should be called during amdgpu_vm_init
>>     * it maps virtual address "AMDGPU_VA_RESERVED_SIZE - AMDGPU_CSA_SIZE"
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
>> index f77d116..6a83425 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
>> @@ -283,6 +283,7 @@ bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev);
>>    int amdgpu_allocate_static_csa(struct amdgpu_device *adev);
>>    int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm,
>>    			  struct amdgpu_bo_va **bo_va);
>> +void amdgpu_free_static_csa(struct amdgpu_device *adev);
>>    void amdgpu_virt_init_setting(struct amdgpu_device *adev);
>>    uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg);
>>    void amdgpu_virt_kiq_wreg(struct amdgpu_device *adev, uint32_t reg,
>> uint32_t v); diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> index 9f5d123..82d157e 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> @@ -2114,7 +2114,6 @@ static int gfx_v8_0_sw_fini(void *handle)
>>    	amdgpu_gfx_compute_mqd_sw_fini(adev);
>>    	amdgpu_gfx_kiq_free_ring(&adev->gfx.kiq.ring, &adev->gfx.kiq.irq);
>>    	amdgpu_gfx_kiq_fini(adev);
>> -	amdgpu_bo_free_kernel(&adev->virt.csa_obj, &adev->virt.csa_vmid0_addr, NULL);
>>    
>>    	gfx_v8_0_mec_fini(adev);
>>    	gfx_v8_0_rlc_fini(adev);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> index 5a4c074..034bcbe 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> @@ -1455,7 +1455,6 @@ static int gfx_v9_0_sw_fini(void *handle)
>>    	amdgpu_gfx_compute_mqd_sw_fini(adev);
>>    	amdgpu_gfx_kiq_free_ring(&adev->gfx.kiq.ring, &adev->gfx.kiq.irq);
>>    	amdgpu_gfx_kiq_fini(adev);
>> -	amdgpu_bo_free_kernel(&adev->virt.csa_obj, &adev->virt.csa_vmid0_addr, NULL);
>>    
>>    	gfx_v9_0_mec_fini(adev);
>>    	gfx_v9_0_ngg_fini(adev);
>
> _______________________________________________
> 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