summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/nvgpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/nvgpu.h')
-rw-r--r--include/uapi/linux/nvgpu.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h
index 442a84ac..0787d4e4 100644
--- a/include/uapi/linux/nvgpu.h
+++ b/include/uapi/linux/nvgpu.h
@@ -834,6 +834,28 @@ struct nvgpu_channel_wdt_args {
834#define NVGPU_IOCTL_CHANNEL_DISABLE_WDT 1 834#define NVGPU_IOCTL_CHANNEL_DISABLE_WDT 1
835#define NVGPU_IOCTL_CHANNEL_ENABLE_WDT 2 835#define NVGPU_IOCTL_CHANNEL_ENABLE_WDT 2
836 836
837/*
838 * Interleaving channels in a runlist is an approach to improve
839 * GPU scheduling by allowing certain channels to appear multiple
840 * times on the runlist. The number of times a channel appears is
841 * governed by the following levels:
842 *
843 * low (L) : appears once
844 * medium (M): if L, appears L times
845 * else, appears once
846 * high (H) : if L, appears (M + 1) x L times
847 * else if M, appears M times
848 * else, appears once
849 */
850struct nvgpu_runlist_interleave_args {
851 __u32 level;
852 __u32 reserved;
853};
854#define NVGPU_RUNLIST_INTERLEAVE_LEVEL_LOW 0
855#define NVGPU_RUNLIST_INTERLEAVE_LEVEL_MEDIUM 1
856#define NVGPU_RUNLIST_INTERLEAVE_LEVEL_HIGH 2
857#define NVGPU_RUNLIST_INTERLEAVE_NUM_LEVELS 3
858
837#define NVGPU_IOCTL_CHANNEL_SET_NVMAP_FD \ 859#define NVGPU_IOCTL_CHANNEL_SET_NVMAP_FD \
838 _IOW(NVGPU_IOCTL_MAGIC, 5, struct nvgpu_set_nvmap_fd_args) 860 _IOW(NVGPU_IOCTL_MAGIC, 5, struct nvgpu_set_nvmap_fd_args)
839#define NVGPU_IOCTL_CHANNEL_SET_TIMEOUT \ 861#define NVGPU_IOCTL_CHANNEL_SET_TIMEOUT \
@@ -876,9 +898,11 @@ struct nvgpu_channel_wdt_args {
876 _IOWR(NVGPU_IOCTL_MAGIC, 118, struct nvgpu_cycle_stats_snapshot_args) 898 _IOWR(NVGPU_IOCTL_MAGIC, 118, struct nvgpu_cycle_stats_snapshot_args)
877#define NVGPU_IOCTL_CHANNEL_WDT \ 899#define NVGPU_IOCTL_CHANNEL_WDT \
878 _IOW(NVGPU_IOCTL_MAGIC, 119, struct nvgpu_channel_wdt_args) 900 _IOW(NVGPU_IOCTL_MAGIC, 119, struct nvgpu_channel_wdt_args)
901#define NVGPU_IOCTL_CHANNEL_SET_RUNLIST_INTERLEAVE \
902 _IOW(NVGPU_IOCTL_MAGIC, 120, struct nvgpu_runlist_interleave_args)
879 903
880#define NVGPU_IOCTL_CHANNEL_LAST \ 904#define NVGPU_IOCTL_CHANNEL_LAST \
881 _IOC_NR(NVGPU_IOCTL_CHANNEL_WDT) 905 _IOC_NR(NVGPU_IOCTL_CHANNEL_SET_RUNLIST_INTERLEAVE)
882#define NVGPU_IOCTL_CHANNEL_MAX_ARG_SIZE sizeof(struct nvgpu_submit_gpfifo_args) 906#define NVGPU_IOCTL_CHANNEL_MAX_ARG_SIZE sizeof(struct nvgpu_submit_gpfifo_args)
883 907
884/* 908/*