From 418fc5338e202c6d0b6b02d49fed736ed28279fb Mon Sep 17 00:00:00 2001 From: Sachit Kadle Date: Tue, 30 Aug 2016 20:23:31 -0700 Subject: gpu: nvgpu: add deterministic submit flag This change adds a new ioctl flag, NVGPU_SUBMIT_GPFIFO_FLAGS_DETERMINISTIC, which indicates that a gpfifo submission must exhibit deterministic behavior within the kernel. For submissions that require job tracking and also set this flag, we require the channel to have previously pre-allocated job tracking resources. Bug 1795076 Change-Id: I0496a2513c6c683fcda161b32db9e7ee6712d45c Signed-off-by: Sachit Kadle Reviewed-on: http://git-master/r/1210527 (cherry picked from commit 0a36a0ce3a6cbe398931993e742fc928f7b2c0aa) Reviewed-on: http://git-master/r/1223935 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index cc3bbbd2..b846054d 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c @@ -2628,6 +2628,15 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, !skip_buffer_refcounting; if (need_job_tracking) { + /* + * If the submit is to have deterministic latency and + * job tracking is required, the channel must have + * pre-allocated resources. Otherwise, we fail the submit here + */ + if ((flags & NVGPU_SUBMIT_GPFIFO_FLAGS_DETERMINISTIC) && + !channel_gk20a_is_prealloc_enabled(c)) + return -EINVAL; + /* gk20a_channel_update releases this ref. */ err = gk20a_busy(g->dev); if (err) { -- cgit v1.2.2