drm/amdgpu: bypass lru touch for KIQ ring submission
authorPixel Ding <Pixel.Ding@amd.com>
Wed, 8 Nov 2017 02:20:01 +0000 (10:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Dec 2017 09:10:23 +0000 (10:10 +0100)
[ Upstream commit dce1e131dd4dc68099ff1b70aa03cd2d0acf8639 ]

KIQ ring submission is used for register accessing on SRIOV
VF that could happen both in irq enabled and irq disabled cases.
Inversion lock could happen on adev->ring_lru_list_lock, while
this operation is useless and just adds overhead in this use
case.

Signed-off-by: Pixel Ding <Pixel.Ding@amd.com>
Reviewed-by: Monk Liu <Monk.Liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c

index 5ce65280b3960fabc9a774184ba20d39481c3d98..90adff83e4898fa36a9dc47659fe59143ffe833b 100644 (file)
@@ -136,7 +136,8 @@ void amdgpu_ring_commit(struct amdgpu_ring *ring)
        if (ring->funcs->end_use)
                ring->funcs->end_use(ring);
 
-       amdgpu_ring_lru_touch(ring->adev, ring);
+       if (ring->funcs->type != AMDGPU_RING_TYPE_KIQ)
+               amdgpu_ring_lru_touch(ring->adev, ring);
 }
 
 /**