diff options
author | Sachit Kadle <skadle@nvidia.com> | 2016-09-14 14:45:38 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-10-21 14:23:53 -0400 |
commit | ab593b9ccd3132404406ef6340348fdb28c23bf0 (patch) | |
tree | 394624e853fdb5e7fbe380c1ee8f4f2fca9fe24d /include | |
parent | 55dba9f1a91a6f94fb63090880ae28eedf4189a2 (diff) |
gpu: nvgpu: make deferred clean-up conditional
This change makes the invocation of the deferred job clean-up
mechanism conditional. For submissions that require job tracking,
deferred clean-up is only required if any of the following
conditions are met:
1) Channel's deterministic flag is not set
2) Rail-gating is enabled
3) Channel WDT is enabled
4) Buffer refcounting is enabled
5) Dependency on Sync Framework
In case deferred clean-up is not needed, we clean-up
a single job tracking resource in the submit path. For
deterministic channels, we do not allow deferred clean-up to
occur and fail any submits that require it.
Bug 1795076
Change-Id: I4021dffe8a71aa58f12db6b58518d3f4021f3313
Signed-off-by: Sachit Kadle <skadle@nvidia.com>
Reviewed-on: http://git-master/r/1220920
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
(cherry picked from commit b09f7589d5ad3c496e7350f1ed583a4fe2db574a)
Reviewed-on: http://git-master/r/1223941
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/uapi/linux/nvgpu.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h index b3302e6f..5110ee79 100644 --- a/include/uapi/linux/nvgpu.h +++ b/include/uapi/linux/nvgpu.h | |||
@@ -968,6 +968,8 @@ struct nvgpu_alloc_gpfifo_args { | |||
968 | struct nvgpu_alloc_gpfifo_ex_args { | 968 | struct nvgpu_alloc_gpfifo_ex_args { |
969 | __u32 num_entries; | 969 | __u32 num_entries; |
970 | __u32 num_inflight_jobs; | 970 | __u32 num_inflight_jobs; |
971 | #define NVGPU_ALLOC_GPFIFO_EX_FLAGS_VPR_ENABLED (1 << 0) /* set owner channel of this gpfifo as a vpr channel */ | ||
972 | #define NVGPU_ALLOC_GPFIFO_EX_FLAGS_DETERMINISTIC (1 << 1) /* channel shall exhibit deterministic behavior in the submit path */ | ||
971 | __u32 flags; | 973 | __u32 flags; |
972 | __u32 reserved[5]; | 974 | __u32 reserved[5]; |
973 | }; | 975 | }; |
@@ -994,8 +996,6 @@ struct nvgpu_fence { | |||
994 | #define NVGPU_SUBMIT_GPFIFO_FLAGS_SUPPRESS_WFI (1 << 4) | 996 | #define NVGPU_SUBMIT_GPFIFO_FLAGS_SUPPRESS_WFI (1 << 4) |
995 | /* skip buffer refcounting during submit */ | 997 | /* skip buffer refcounting during submit */ |
996 | #define NVGPU_SUBMIT_GPFIFO_FLAGS_SKIP_BUFFER_REFCOUNTING (1 << 5) | 998 | #define NVGPU_SUBMIT_GPFIFO_FLAGS_SKIP_BUFFER_REFCOUNTING (1 << 5) |
997 | /* submit should exhibit deterministic latency */ | ||
998 | #define NVGPU_SUBMIT_GPFIFO_FLAGS_DETERMINISTIC (1 << 6) | ||
999 | 999 | ||
1000 | struct nvgpu_submit_gpfifo_args { | 1000 | struct nvgpu_submit_gpfifo_args { |
1001 | __u64 gpfifo; | 1001 | __u64 gpfifo; |