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>
Mon, 23 Nov 2015 21:13:20 +0000 (13:13 -0800)
commit8d5f3a03ac9a67c13bade576482562435ba48150
tree8bd92cf8056b5643c96deb76639c626c2cfbb87f
parent0a4ebde02c5471cd1aff8fa496cc62d3df965202
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
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
drivers/gpu/nvgpu/gk20a/channel_gk20a.c
drivers/gpu/nvgpu/gk20a/channel_gk20a.h
drivers/gpu/nvgpu/gk20a/mm_gk20a.h