diff options
author | Sachit Kadle <skadle@nvidia.com> | 2016-09-19 17:18:11 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-09-20 13:43:35 -0400 |
commit | 246dcb824bc299b836be92fb74416c07a57e085b (patch) | |
tree | f1ce23cdea84e873fbf965ce903e31c7effa4739 /drivers/gpu/nvgpu/gk20a/platform_gk20a.h | |
parent | 3180ed70489113365203abc049223ad5956cb22e (diff) |
gpu: nvgpu: improve sync create/destroy logic
This change improves the aggressive sync creation
& destruction logic to avoid lock contention in
the submit path. It does the following:
1) Removes the global sync destruction (channel)
threshold, and adds a per-platform parameter.
2) Avoids lock contention in the clean-up/submit
path when aggressive sync destruction is disabled.
3) Creates sync object at gpfifo
allocation time (as long as we are not in aggressive
sync destroy mode), to enable faster first submits
Bug 1795076
Change-Id: Ifdb680100b08d00f37338063355bb2123ceb1b9f
Signed-off-by: Sachit Kadle <skadle@nvidia.com>
Reviewed-on: http://git-master/r/1202425
(cherry picked from commit ac0978711943a59c6f28c98c76b10759e0bff610)
Reviewed-on: http://git-master/r/1202427
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/platform_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_gk20a.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h index 93158cc7..f038b072 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h | |||
@@ -50,6 +50,9 @@ struct gk20a_platform { | |||
50 | /* Should be populated at probe. */ | 50 | /* Should be populated at probe. */ |
51 | bool has_syncpoints; | 51 | bool has_syncpoints; |
52 | 52 | ||
53 | /* channel limit after which to start aggressive sync destroy */ | ||
54 | int aggressive_sync_destroy_thresh; | ||
55 | |||
53 | /* flag to set sync destroy aggressiveness */ | 56 | /* flag to set sync destroy aggressiveness */ |
54 | bool aggressive_sync_destroy; | 57 | bool aggressive_sync_destroy; |
55 | 58 | ||