diff mbox series

[2/2] drm/i915/selftest: Fix ktime_get() and h/w access order

Message ID 20230223100503.3323627-3-anshuman.gupta@intel.com (mailing list archive)
State New, archived
Headers show
Series Selftest fixes | expand

Commit Message

Gupta, Anshuman Feb. 23, 2023, 10:05 a.m. UTC
Use ktime_get() after accessing the mmio or any driver resource,
while using wall time for various calculation that depends on
the inserted delay in order to account any mmio and resource
access latency.

Cc: Chris Wilson <chris.p.wilson@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 drivers/gpu/drm/i915/gt/selftest_rps.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Nilawar, Badal March 1, 2023, 11:58 a.m. UTC | #1
LGTM

Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>

On 23-02-2023 15:35, Anshuman Gupta wrote:
> Use ktime_get() after accessing the mmio or any driver resource,
> while using wall time for various calculation that depends on
> the inserted delay in order to account any mmio and resource
> access latency.
> 
> Cc: Chris Wilson <chris.p.wilson@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>   drivers/gpu/drm/i915/gt/selftest_rps.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/selftest_rps.c b/drivers/gpu/drm/i915/gt/selftest_rps.c
> index c0cc0dd78c7c..84e77e8dbba1 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_rps.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_rps.c
> @@ -537,8 +537,8 @@ static u64 __measure_frequency(u32 *cntr, int duration_ms)
>   {
>   	u64 dc, dt;
>   
> -	dt = ktime_get();
>   	dc = READ_ONCE(*cntr);
> +	dt = ktime_get();
>   	usleep_range(1000 * duration_ms, 2000 * duration_ms);
>   	dc = READ_ONCE(*cntr) - dc;
>   	dt = ktime_get() - dt;
> @@ -566,8 +566,8 @@ static u64 __measure_cs_frequency(struct intel_engine_cs *engine,
>   {
>   	u64 dc, dt;
>   
> -	dt = ktime_get();
>   	dc = intel_uncore_read_fw(engine->uncore, CS_GPR(0));
> +	dt = ktime_get();
>   	usleep_range(1000 * duration_ms, 2000 * duration_ms);
>   	dc = intel_uncore_read_fw(engine->uncore, CS_GPR(0)) - dc;
>   	dt = ktime_get() - dt;
> @@ -1094,8 +1094,8 @@ static u64 __measure_power(int duration_ms)
>   {
>   	u64 dE, dt;
>   
> -	dt = ktime_get();
>   	dE = librapl_energy_uJ();
> +	dt = ktime_get();
>   	usleep_range(1000 * duration_ms, 2000 * duration_ms);
>   	dE = librapl_energy_uJ() - dE;
>   	dt = ktime_get() - dt;
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/selftest_rps.c b/drivers/gpu/drm/i915/gt/selftest_rps.c
index c0cc0dd78c7c..84e77e8dbba1 100644
--- a/drivers/gpu/drm/i915/gt/selftest_rps.c
+++ b/drivers/gpu/drm/i915/gt/selftest_rps.c
@@ -537,8 +537,8 @@  static u64 __measure_frequency(u32 *cntr, int duration_ms)
 {
 	u64 dc, dt;
 
-	dt = ktime_get();
 	dc = READ_ONCE(*cntr);
+	dt = ktime_get();
 	usleep_range(1000 * duration_ms, 2000 * duration_ms);
 	dc = READ_ONCE(*cntr) - dc;
 	dt = ktime_get() - dt;
@@ -566,8 +566,8 @@  static u64 __measure_cs_frequency(struct intel_engine_cs *engine,
 {
 	u64 dc, dt;
 
-	dt = ktime_get();
 	dc = intel_uncore_read_fw(engine->uncore, CS_GPR(0));
+	dt = ktime_get();
 	usleep_range(1000 * duration_ms, 2000 * duration_ms);
 	dc = intel_uncore_read_fw(engine->uncore, CS_GPR(0)) - dc;
 	dt = ktime_get() - dt;
@@ -1094,8 +1094,8 @@  static u64 __measure_power(int duration_ms)
 {
 	u64 dE, dt;
 
-	dt = ktime_get();
 	dE = librapl_energy_uJ();
+	dt = ktime_get();
 	usleep_range(1000 * duration_ms, 2000 * duration_ms);
 	dE = librapl_energy_uJ() - dE;
 	dt = ktime_get() - dt;