summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.h
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2016-05-10 12:05:45 -0400
committerVijayakumar Subbu <vsubbu@nvidia.com>2016-07-19 02:12:51 -0400
commitc8ffe0fdecfa110a9f9beb1b7e0298d3c3c64cc2 (patch)
tree08054741c436ab6a783e710a9efa87fc7a0b71df /drivers/gpu/nvgpu/gk20a/gk20a.h
parent90988af81237d3b56c063b750c32efcbee9ab9cc (diff)
gpu: nvgpu: add sched control API
Added a dedicated device node to allow an app manager to control TSG scheduling parameters: - Get list of TSGs - Get list of recent TSGs - Get list of TSGs per pid - Get TSG current scheduling parameters - Set TSG timeslice - Set TSG runlist interleave Jira VFND-1586 Change-Id: I014c9d1534bce0eaea6c25ad114cf0cff317af79 Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: http://git-master/r/1160384 (cherry picked from commit 75ca739517cc7f7f76714b5f6a1a57c39b8cb38e) Reviewed-on: http://git-master/r/1167021 Reviewed-by: Richard Zhao <rizhao@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index c5da68cc..8aa8689b 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -52,6 +52,7 @@ struct acr_desc;
52#include "acr.h" 52#include "acr.h"
53#include "cde_gk20a.h" 53#include "cde_gk20a.h"
54#include "debug_gk20a.h" 54#include "debug_gk20a.h"
55#include "sched_gk20a.h"
55 56
56/* PTIMER_REF_FREQ_HZ corresponds to a period of 32 nanoseconds. 57/* PTIMER_REF_FREQ_HZ corresponds to a period of 32 nanoseconds.
57 32 ns is the resolution of ptimer. */ 58 32 ns is the resolution of ptimer. */
@@ -817,6 +818,11 @@ struct gk20a {
817 struct device *node; 818 struct device *node;
818 } ctxsw; 819 } ctxsw;
819 820
821 struct {
822 struct cdev cdev;
823 struct device *node;
824 } sched;
825
820 struct mutex client_lock; 826 struct mutex client_lock;
821 int client_refcount; /* open channels and ctrl nodes */ 827 int client_refcount; /* open channels and ctrl nodes */
822 828
@@ -847,6 +853,8 @@ struct gk20a {
847 struct gk20a_ctxsw_trace *ctxsw_trace; 853 struct gk20a_ctxsw_trace *ctxsw_trace;
848 struct gk20a_fecs_trace *fecs_trace; 854 struct gk20a_fecs_trace *fecs_trace;
849 855
856 struct gk20a_sched_ctrl sched_ctrl;
857
850 struct device_dma_parameters dma_parms; 858 struct device_dma_parameters dma_parms;
851 859
852 struct gk20a_cde_app cde_app; 860 struct gk20a_cde_app cde_app;
@@ -925,6 +933,7 @@ enum gk20a_dbg_categories {
925 gpu_dbg_cde = BIT(10), /* cde info messages */ 933 gpu_dbg_cde = BIT(10), /* cde info messages */
926 gpu_dbg_cde_ctx = BIT(11), /* cde context usage messages */ 934 gpu_dbg_cde_ctx = BIT(11), /* cde context usage messages */
927 gpu_dbg_ctxsw = BIT(12), /* ctxsw tracing */ 935 gpu_dbg_ctxsw = BIT(12), /* ctxsw tracing */
936 gpu_dbg_sched = BIT(13), /* sched control tracing */
928 gpu_dbg_mem = BIT(31), /* memory accesses, very verbose */ 937 gpu_dbg_mem = BIT(31), /* memory accesses, very verbose */
929}; 938};
930 939