diff options
author | Thomas Fleury <tfleury@nvidia.com> | 2016-05-10 12:05:45 -0400 |
---|---|---|
committer | Vijayakumar Subbu <vsubbu@nvidia.com> | 2016-07-19 02:12:51 -0400 |
commit | c8ffe0fdecfa110a9f9beb1b7e0298d3c3c64cc2 (patch) | |
tree | 08054741c436ab6a783e710a9efa87fc7a0b71df /drivers/gpu/nvgpu/gk20a/gk20a.h | |
parent | 90988af81237d3b56c063b750c32efcbee9ab9cc (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.h | 9 |
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 | ||