summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2018-05-17 08:33:29 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-05-24 07:37:34 -0400
commitd914e662aef07cc2c3c58971ad21a9cc5fa0ce4d (patch)
tree278da21d3c562b837a6d01a8c85f90ee2b8e72a9
parenta4d1a4830e13caecf5f39f15a716f3bd63f37c34 (diff)
gpu: nvgpu: use nvgpu_current_time_ns in submit profiling
Replace Linux-specific and dubious sched_clock() with common nvgpu_current_time_ns(). sched_clock() used also nanoseconds. Jira NVGPU-708 Change-Id: I70f992fe42cc9c3ffed374fdebd582867475e84f Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1723202 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/common/linux/channel.c9
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_channel.c4
2 files changed, 7 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/channel.c b/drivers/gpu/nvgpu/common/linux/channel.c
index 88bc2009..e2a10634 100644
--- a/drivers/gpu/nvgpu/common/linux/channel.c
+++ b/drivers/gpu/nvgpu/common/linux/channel.c
@@ -19,6 +19,7 @@
19#include <nvgpu/ltc.h> 19#include <nvgpu/ltc.h>
20#include <nvgpu/error_notifier.h> 20#include <nvgpu/error_notifier.h>
21#include <nvgpu/os_sched.h> 21#include <nvgpu/os_sched.h>
22#include <nvgpu/timers.h>
22 23
23/* 24/*
24 * This is required for nvgpu_vm_find_buf() which is used in the tracing 25 * This is required for nvgpu_vm_find_buf() which is used in the tracing
@@ -817,7 +818,7 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c,
817 } 818 }
818 819
819 if (profile) 820 if (profile)
820 profile->timestamp[PROFILE_ENTRY] = sched_clock(); 821 profile->timestamp[PROFILE_ENTRY] = nvgpu_current_time_ns();
821 822
822 /* update debug settings */ 823 /* update debug settings */
823 nvgpu_ltc_sync_enabled(g); 824 nvgpu_ltc_sync_enabled(g);
@@ -966,7 +967,7 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c,
966 } 967 }
967 968
968 if (profile) 969 if (profile)
969 profile->timestamp[PROFILE_JOB_TRACKING] = sched_clock(); 970 profile->timestamp[PROFILE_JOB_TRACKING] = nvgpu_current_time_ns();
970 971
971 if (wait_cmd) 972 if (wait_cmd)
972 gk20a_submit_append_priv_cmdbuf(c, wait_cmd); 973 gk20a_submit_append_priv_cmdbuf(c, wait_cmd);
@@ -991,7 +992,7 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c,
991 /* TODO! Check for errors... */ 992 /* TODO! Check for errors... */
992 gk20a_channel_add_job(c, job, skip_buffer_refcounting); 993 gk20a_channel_add_job(c, job, skip_buffer_refcounting);
993 if (profile) 994 if (profile)
994 profile->timestamp[PROFILE_APPEND] = sched_clock(); 995 profile->timestamp[PROFILE_APPEND] = nvgpu_current_time_ns();
995 996
996 g->ops.fifo.userd_gp_put(g, c); 997 g->ops.fifo.userd_gp_put(g, c);
997 998
@@ -1010,7 +1011,7 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c,
1010 c->gpfifo.put, c->gpfifo.get, c->gpfifo.entry_num); 1011 c->gpfifo.put, c->gpfifo.get, c->gpfifo.entry_num);
1011 1012
1012 if (profile) 1013 if (profile)
1013 profile->timestamp[PROFILE_END] = sched_clock(); 1014 profile->timestamp[PROFILE_END] = nvgpu_current_time_ns();
1014 nvgpu_log_fn(g, "done"); 1015 nvgpu_log_fn(g, "done");
1015 return err; 1016 return err;
1016 1017
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
index 057c81e2..f93412c3 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
@@ -784,7 +784,7 @@ static int gk20a_ioctl_channel_submit_gpfifo(
784 profile = gk20a_fifo_profile_acquire(ch->g); 784 profile = gk20a_fifo_profile_acquire(ch->g);
785 785
786 if (profile) 786 if (profile)
787 profile->timestamp[PROFILE_IOCTL_ENTRY] = sched_clock(); 787 profile->timestamp[PROFILE_IOCTL_ENTRY] = nvgpu_current_time_ns();
788#endif 788#endif
789 if (ch->has_timedout) 789 if (ch->has_timedout)
790 return -ETIMEDOUT; 790 return -ETIMEDOUT;
@@ -827,7 +827,7 @@ static int gk20a_ioctl_channel_submit_gpfifo(
827 gk20a_fence_put(fence_out); 827 gk20a_fence_put(fence_out);
828#ifdef CONFIG_DEBUG_FS 828#ifdef CONFIG_DEBUG_FS
829 if (profile) { 829 if (profile) {
830 profile->timestamp[PROFILE_IOCTL_EXIT] = sched_clock(); 830 profile->timestamp[PROFILE_IOCTL_EXIT] = nvgpu_current_time_ns();
831 gk20a_fifo_profile_release(ch->g, profile); 831 gk20a_fifo_profile_release(ch->g, profile);
832 } 832 }
833#endif 833#endif