mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
Revert "gpu: nvgpu: Improve accuracy of dGPU clk measurement"
The newly added nvgpu_current_time_ms API results in inaccurate time
measurements sometime which causes nvgpu_dgpu_freq_test.sh to fail.
Bug 2637525
Bug 200530176
This reverts commit 318d6451e9.
Change-Id: I96279c556b3c044f590882b3bff358cfcb545ab1
Signed-off-by: Abdul Salam <absalam@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2147571
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
1c2968e27f
commit
ffda24df36
@@ -31,7 +31,7 @@
|
||||
#include <nvgpu/io.h>
|
||||
#include <nvgpu/list.h>
|
||||
#include <nvgpu/clk_arb.h>
|
||||
#include <nvgpu/soc.h>
|
||||
#include <nvgpu/timers.h>
|
||||
#include <nvgpu/gk20a.h>
|
||||
#include <nvgpu/clk.h>
|
||||
#include <nvgpu/clk_arb.h>
|
||||
@@ -189,14 +189,13 @@ u32 gv100_get_rate_cntr(struct gk20a *g, struct namemap_cfg *c) {
|
||||
/* Counter is 36bits , 32 bits on addr[0] and 4 lsb on addr[1] others zero*/
|
||||
cntr_start = (u64)gk20a_readl(g, c->cntr.reg_cntr_addr[0]);
|
||||
cntr_start += ((u64)gk20a_readl(g, c->cntr.reg_cntr_addr[1]) << 32);
|
||||
start_time = (u64)nvgpu_hr_timestamp_us();
|
||||
start_time = (u64)nvgpu_current_time_ms();
|
||||
nvgpu_udelay(XTAL_CNTR_DELAY);
|
||||
stop_time = (u64)nvgpu_hr_timestamp_us();
|
||||
stop_time = (u64)nvgpu_current_time_ms();
|
||||
cntr_stop = (u64)gk20a_readl(g, c->cntr.reg_cntr_addr[0]);
|
||||
cntr_stop += ((u64)gk20a_readl(g, c->cntr.reg_cntr_addr[1]) << 32);
|
||||
/*Calculate the difference with Acutal time and convert to KHz*/
|
||||
cntr = (u32)(((cntr_stop - cntr_start) * 1000U) /
|
||||
(u32)(stop_time-start_time));
|
||||
cntr = ((u32)(cntr_stop - cntr_start) / (u32)(stop_time-start_time));
|
||||
nvgpu_mutex_release(&clk->clk_mutex);
|
||||
|
||||
return cntr;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved.
|
||||
* Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -34,5 +34,5 @@ bool nvgpu_is_bpmp_running(struct gk20a *g);
|
||||
bool nvgpu_is_soc_t194_a01(struct gk20a *g);
|
||||
int nvgpu_init_soc_vars(struct gk20a *g);
|
||||
void nvgpu_delay_usecs(unsigned int usecs);
|
||||
u64 nvgpu_us_counter(void);
|
||||
|
||||
#endif /* NVGPU_SOC_H */
|
||||
|
||||
@@ -111,8 +111,6 @@ void nvgpu_udelay(unsigned int usecs);
|
||||
*/
|
||||
s64 nvgpu_current_time_ms(void);
|
||||
s64 nvgpu_current_time_ns(void);
|
||||
s64 nvgpu_current_time_us(void);
|
||||
u64 nvgpu_hr_timestamp_us(void);
|
||||
u64 nvgpu_hr_timestamp(void);
|
||||
|
||||
#endif /* NVGPU_TIMERS_H */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved.
|
||||
* Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
@@ -127,8 +127,3 @@ int nvgpu_init_soc_vars(struct gk20a *g)
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
u64 nvgpu_us_counter(void)
|
||||
{
|
||||
return (u64)nvgpu_current_time_us();
|
||||
}
|
||||
|
||||
@@ -242,18 +242,6 @@ s64 nvgpu_current_time_ms(void)
|
||||
return ktime_to_ms(ktime_get());
|
||||
}
|
||||
|
||||
/**
|
||||
* nvgpu_current_time_us - Time in microseconds from a monotonic clock.
|
||||
*
|
||||
* Return a clock in microsecond units. The start time of the clock is
|
||||
* unspecified; the time returned can be compared with older ones to measure
|
||||
* durations. The source clock does not jump when the system clock is adjusted.
|
||||
*/
|
||||
s64 nvgpu_current_time_us(void)
|
||||
{
|
||||
return ktime_to_us(ktime_get());
|
||||
}
|
||||
|
||||
/**
|
||||
* nvgpu_current_time_ns - Time in nanoseconds from a monotonic clock.
|
||||
*
|
||||
@@ -266,18 +254,6 @@ s64 nvgpu_current_time_ns(void)
|
||||
return ktime_to_ns(ktime_get());
|
||||
}
|
||||
|
||||
/**
|
||||
* nvgpu_hr_timestamp_us - Time in microseconds from a monotonic clock.
|
||||
*
|
||||
* Return a clock in microsecond units. The start time of the clock is
|
||||
* unspecified; the time returned can be compared with older ones to measure
|
||||
* durations. The source clock does not jump when the system clock is adjusted.
|
||||
*/
|
||||
u64 nvgpu_hr_timestamp_us(void)
|
||||
{
|
||||
return nvgpu_us_counter();
|
||||
}
|
||||
|
||||
/**
|
||||
* nvgpu_hr_timestamp - Opaque 'high resolution' time stamp.
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
|
||||
* Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -20,7 +20,6 @@
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <nvgpu/timers.h>
|
||||
#include <nvgpu/soc.h>
|
||||
|
||||
bool nvgpu_platform_is_silicon(struct gk20a *g)
|
||||
@@ -56,8 +55,3 @@ bool nvgpu_is_soc_t194_a01(struct gk20a *g)
|
||||
void nvgpu_delay_usecs(unsigned int usecs)
|
||||
{
|
||||
}
|
||||
|
||||
u64 nvgpu_us_counter(void)
|
||||
{
|
||||
return (u64)nvgpu_current_time_us();
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#define NSEC_PER_MSEC 1000000
|
||||
#define NSEC_PER_SEC 1000000000
|
||||
|
||||
s64 nvgpu_current_time_us(void)
|
||||
static inline s64 nvgpu_current_time_us(void)
|
||||
{
|
||||
struct timeval now;
|
||||
s64 time_now;
|
||||
@@ -251,8 +251,3 @@ u64 nvgpu_hr_timestamp(void)
|
||||
{
|
||||
return (u64)nvgpu_current_time_us();
|
||||
}
|
||||
|
||||
u64 nvgpu_hr_timestamp_us(void)
|
||||
{
|
||||
return nvgpu_us_counter();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user