summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/nvgpu.h
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2017-05-02 09:01:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-05-05 10:54:18 -0400
commitee9733e587d977610975435a84e5af7cabba8870 (patch)
tree6515a93b3fd6267d1e9626469816747359b197e8 /include/uapi/linux/nvgpu.h
parent744e2d202e2d38b0d8ff8b55e1e84daf75e39b48 (diff)
gpu: nvgpu: expose deterministic submit support
Add these bits in the gpu characteristics flags: NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_NO_JOBTRACKING - fast submits with no in-kernel job tracking are supported. NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_FULL - deterministic submits also with job tracking and num_inflight_jobs set are supported. Either of these may get disabled if the particular channel or submit still requires features that block these. Make gk20a_channel_sync_needs_sync_framework() take a gk20a pointer instead of a channel pointer so that it can be called without a channel. It does not need any per-channel data. Bug 200291300 Change-Id: I5f82510b6d39b53bcf6f1006dd83bdd9053963a0 Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1456845 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include/uapi/linux/nvgpu.h')
-rw-r--r--include/uapi/linux/nvgpu.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h
index e25667cb..401722b1 100644
--- a/include/uapi/linux/nvgpu.h
+++ b/include/uapi/linux/nvgpu.h
@@ -137,6 +137,10 @@ struct nvgpu_gpu_zbc_query_table_args {
137#define NVGPU_GPU_FLAGS_SUPPORT_FECS_CTXSW_TRACE (1ULL << 16) 137#define NVGPU_GPU_FLAGS_SUPPORT_FECS_CTXSW_TRACE (1ULL << 16)
138/* NVGPU_AS_IOCTL_MAP_BUFFER_COMPBITS is available */ 138/* NVGPU_AS_IOCTL_MAP_BUFFER_COMPBITS is available */
139#define NVGPU_GPU_FLAGS_SUPPORT_MAP_COMPBITS (1ULL << 17) 139#define NVGPU_GPU_FLAGS_SUPPORT_MAP_COMPBITS (1ULL << 17)
140/* Fast deterministic submits with no job tracking are supported */
141#define NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_NO_JOBTRACKING (1ULL << 18)
142/* Deterministic submits are supported even with job tracking */
143#define NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_FULL (1ULL << 19)
140 144
141struct nvgpu_gpu_characteristics { 145struct nvgpu_gpu_characteristics {
142 __u32 arch; 146 __u32 arch;
@@ -1348,8 +1352,22 @@ struct nvgpu_alloc_gpfifo_args {
1348struct nvgpu_alloc_gpfifo_ex_args { 1352struct nvgpu_alloc_gpfifo_ex_args {
1349 __u32 num_entries; 1353 __u32 num_entries;
1350 __u32 num_inflight_jobs; 1354 __u32 num_inflight_jobs;
1351#define NVGPU_ALLOC_GPFIFO_EX_FLAGS_VPR_ENABLED (1 << 0) /* set owner channel of this gpfifo as a vpr channel */ 1355/* Set owner channel of this gpfifo as a vpr channel. */
1352#define NVGPU_ALLOC_GPFIFO_EX_FLAGS_DETERMINISTIC (1 << 1) /* channel shall exhibit deterministic behavior in the submit path */ 1356#define NVGPU_ALLOC_GPFIFO_EX_FLAGS_VPR_ENABLED (1 << 0)
1357/*
1358 * Channel shall exhibit deterministic behavior in the submit path.
1359 *
1360 * With this flag, any submits with in-kernel job tracking also require that
1361 * num_inflight_jobs is nonzero, and additionally that
1362 * NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_FULL is found in gpu
1363 * characteristics.flags.
1364 *
1365 * Note that fast submits (with no in-kernel job tracking) are also
1366 * deterministic and are supported if the characteristics flags contain
1367 * NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_NO_JOBTRACKING; this flag or
1368 * num_inflight_jobs are not necessary in that case.
1369 */
1370#define NVGPU_ALLOC_GPFIFO_EX_FLAGS_DETERMINISTIC (1 << 1)
1353 __u32 flags; 1371 __u32 flags;
1354 __u32 reserved[5]; 1372 __u32 reserved[5];
1355}; 1373};