[PATCH v5 5/5] drm/amdgpu: move PD/PT bos on LRU again

Michel Dänzer michel at daenzer.net
Tue Aug 28 17:03:03 UTC 2018


On 2018-08-28 11:14 a.m., Michel Dänzer wrote:
> 
> Hi Ray,
> 
> 
> On 2018-08-22 9:52 a.m., Huang Rui wrote:
>> The new bulk moving functionality is ready, the overhead of moving PD/PT bos to
>> LRU is fixed. So move them on LRU again.
>>
>> Signed-off-by: Huang Rui <ray.huang at amd.com>
>> Tested-by: Mike Lothian <mike at fireburn.co.uk>
>> Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>
>> Acked-by: Chunming Zhou <david1.zhou at amd.com>
>> Reviewed-by: Junwei Zhang <Jerry.Zhang at amd.com>
>> ---
>>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> index db1f28a..d195a3d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> @@ -1107,7 +1107,7 @@ int amdgpu_vm_update_directories(struct amdgpu_device *adev,
>>  					   struct amdgpu_vm_bo_base,
>>  					   vm_status);
>>  		bo_base->moved = false;
>> -		list_del_init(&bo_base->vm_status);
>> +		list_move(&bo_base->vm_status, &vm->idle);
>>  
>>  		bo = bo_base->bo->parent;
>>  		if (!bo)
>>
> 
> Since this change, I'm getting various badness when running piglit using
> radeonsi on Bonaire, see the attached dmesg excerpt.
> 
> Reverting just this change on top of current amd-staging-drm-next avoids
> the problem.
> 
> Looks like some list manipulation isn't sufficiently protected against
> concurrent execution?

KASAN pointed me to one issue:
https://patchwork.freedesktop.org/patch/246212/

However, this doesn't fully fix the problem.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the amd-gfx mailing list