diff options
author | Konsta Holtta <kholtta@nvidia.com> | 2018-05-17 08:33:29 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-05-24 07:37:34 -0400 |
commit | d914e662aef07cc2c3c58971ad21a9cc5fa0ce4d (patch) | |
tree | 278da21d3c562b837a6d01a8c85f90ee2b8e72a9 /drivers/gpu/nvgpu/common | |
parent | a4d1a4830e13caecf5f39f15a716f3bd63f37c34 (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>
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/channel.c | 9 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/ioctl_channel.c | 4 |
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 |