gpu: nvgpu: abstract submit profiling

Add gk20a_fifo_profile_snapshot() to store the submit time in a
profiling entry that was acquired from gk20a_fifo_profile_acquire().
Also get rid of ifdef CONFIG_DEBUG_FS by stubbing the acquire and free
functions when debugfs is not enabled. This reduces some cyclomatic
complexity in the submit path.

Jira NVGPU-708

Change-Id: I39829a6475cfe3aa582620219e420bde62228e52
Signed-off-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1729545
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Konsta Holtta
2018-05-22 12:59:02 +03:00
committed by mobile promotions
parent 45d0a9c711
commit cae514120b
4 changed files with 32 additions and 18 deletions

View File

@@ -780,12 +780,9 @@ static int gk20a_ioctl_channel_submit_gpfifo(
int ret = 0;
nvgpu_log_fn(g, " ");
#ifdef CONFIG_DEBUG_FS
profile = gk20a_fifo_profile_acquire(ch->g);
gk20a_fifo_profile_snapshot(profile, PROFILE_IOCTL_ENTRY);
if (profile)
profile->timestamp[PROFILE_IOCTL_ENTRY] = nvgpu_current_time_ns();
#endif
if (ch->has_timedout)
return -ETIMEDOUT;
@@ -825,12 +822,11 @@ static int gk20a_ioctl_channel_submit_gpfifo(
}
}
gk20a_fence_put(fence_out);
#ifdef CONFIG_DEBUG_FS
if (profile) {
profile->timestamp[PROFILE_IOCTL_EXIT] = nvgpu_current_time_ns();
gk20a_fifo_profile_snapshot(profile, PROFILE_IOCTL_EXIT);
if (profile)
gk20a_fifo_profile_release(ch->g, profile);
}
#endif
clean_up:
return ret;
}