gpu: nvgpu: set aggressive_sync_destroy at runtime

We currently set "aggressive_destroy" flag to destroy
sync object statically and for each sync object

Move this flag to per-platform structure so that it
can be set per-platform for all the sync objects

Also, set the default value of this flag as "false"
and set it to "true" once we have more than 64
channels in use

Bug 200141116

Change-Id: I1bc271df4f468a4087a06a27c7289ee0ec3ef29c
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/822041
(cherry picked from commit 98741e7e88066648f4f14490c76b61dbff745103)
Reviewed-on: http://git-master/r/835800
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
Deepak Nibade
2015-10-23 15:41:21 +05:30
committed by Terje Bergstrom
parent b8b6df791b
commit 7f79d647d6
5 changed files with 22 additions and 10 deletions

View File

@@ -345,8 +345,6 @@ gk20a_channel_syncpt_create(struct channel_gk20a *c)
sp->ops.syncpt_id = gk20a_channel_syncpt_id;
sp->ops.destroy = gk20a_channel_syncpt_destroy;
sp->ops.aggressive_destroy = true;
return &sp->ops;
}
#endif /* CONFIG_TEGRA_GK20A */
@@ -690,10 +688,6 @@ gk20a_channel_semaphore_create(struct channel_gk20a *c)
sema->ops.syncpt_id = gk20a_channel_semaphore_syncpt_id;
sema->ops.destroy = gk20a_channel_semaphore_destroy;
/* Aggressively destroying the semaphore sync would cause overhead
* since the pool needs to be mapped to GMMU. */
sema->ops.aggressive_destroy = false;
return &sema->ops;
clean_up:
gk20a_channel_semaphore_destroy(&sema->ops);