gpu: nvgpu: rework private command buffer free path
authorDeepak Nibade <dnibade@nvidia.com>
Wed, 4 Nov 2015 08:36:37 +0000 (13:36 +0530)
committermobile promotions <svcmobile_promotions@nvidia.com>
Fri, 4 Dec 2015 16:06:03 +0000 (08:06 -0800)
commit513b68ee1213d50f95fc43018faf85eda4b044da
treea12ecc329444f192e051c6ba02d010d2b68dc916
parente202d8239b3285bc3c73f937dcc05becc80e1449
gpu: nvgpu: rework private command buffer free path

We currently allocate private command buffers (wait_cmd
and incr_cmd) before submitting the job but we never
free them explicitly.
When private command queue of the channel is full, we
then try to recycle/remove free command buffers.
But this recycling happens during submit path, and
hence that particular submit path takes much longer

Rework this as below :
- add reference of command buffers to job structure
- when job completes, free the command buffers
  explicitly
- remove the code to recycle buffers since it should
  not be needed now

Note that command buffers need to be freed in order of
their allocation. Ensure this with error print before
freeing the command buffer entry

Bug 200141116
Bug 1698667

Change-Id: Id4b69429d7ad966307e0d122a71ad55076684307
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/827638
(cherry picked from commit c6cefd69b71c9b70d6df5343b13dfcfb3fa99598)
Reviewed-on: http://git-master/r/835818
Reviewed-on: http://git-master/r/838594
GVS: Gerrit_Virtual_Submit
Tested-by: Kiran SJ <ksj@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
drivers/gpu/nvgpu/gk20a/channel_gk20a.c
drivers/gpu/nvgpu/gk20a/channel_gk20a.h
drivers/gpu/nvgpu/gk20a/mm_gk20a.h