summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2015-10-26 09:17:55 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-11-23 11:30:13 -0500
commit67fe5f6d738a9b1ba2d8f5dd0726790d965c8883 (patch)
tree07cc9865536b4fbb3c6737434d551c6d03548dfa /drivers/gpu/nvgpu/gk20a/channel_gk20a.h
parent938b16909f85231a8c62d563b603ed93862c8ed8 (diff)
gpu: nvgpu: remove temporary gpfifo allocation in submit path
In GPU job submit path gk20a_ioctl_channel_submit_gpfifo(), we currently allocate a temporary gpfifo, copy user space gpfifo content into this temporary buffer, and then copy temp buffer content into channel's gpfifo. Allocation/copy/free of temporary buffer adds additional overhead Rewrite this sequence such that gk20a_submit_channel_gpfifo() can receive either a pre-filled gpfifo or pointer to user provided args. And then we can direclty copy the user provided gpfifo into the channel's gpfifo Also, if command buffer tracing is enabled, we still need to copy user provided gpfifo into temporaty buffer for reading But that should not cause overhead in real world use case Bug 200141116 Change-Id: I7166c9271da2694059da9853ab8839e98457b941 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/823386 (cherry picked from commit 3e0702db006c262dd8737a567b8e06f7ff005e2c) Reviewed-on: http://git-master/r/835799 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
index e7809daa..d5f5e6a2 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
@@ -237,6 +237,7 @@ void channel_gk20a_unbind(struct channel_gk20a *ch_gk20a);
237 237
238int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, 238int gk20a_submit_channel_gpfifo(struct channel_gk20a *c,
239 struct nvgpu_gpfifo *gpfifo, 239 struct nvgpu_gpfifo *gpfifo,
240 struct nvgpu_submit_gpfifo_args *args,
240 u32 num_entries, 241 u32 num_entries,
241 u32 flags, 242 u32 flags,
242 struct nvgpu_fence *fence, 243 struct nvgpu_fence *fence,