From: Anshuman Gupta Date: Tue, 30 Nov 2021 13:20:05 +0000 (+0530) Subject: drm/i915/selftest: Disable IRQ for timestamp calculation X-Git-Tag: v6.1-rc5~176^2~17^2~816 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2ebc9e4af0291d2e8d14ecc0bad8f36de8cc6e62;p=platform%2Fkernel%2Flinux-starfive.git drm/i915/selftest: Disable IRQ for timestamp calculation gt_pm selftest calculates engine ticks cycles and wall time cycles by delta of respective engine elapsed TIMESTAMP and ktime for period of 1000us. It compares the engine ticks cycles with wall time cycles. Disable local cpu interrupt so that interrupt handler does not switch out the thread during measure_clocks() and prevent miscalculation of engine tick cycles. v2: - nuke preempt_{disable,enable}, as disable_local_irq() disable the preemption. (Chris) Cc: Chris P Wilson Cc: Badal Nilawar Cc: Ashutosh Dixit Signed-off-by: Anshuman Gupta Reviewed-by: Ashutosh Dixit Link: https://patchwork.freedesktop.org/patch/msgid/20211130132005.6305-1-anshuman.gupta@intel.com --- diff --git a/drivers/gpu/drm/i915/gt/selftest_gt_pm.c b/drivers/gpu/drm/i915/gt/selftest_gt_pm.c index b944121..55c5cdb 100644 --- a/drivers/gpu/drm/i915/gt/selftest_gt_pm.c +++ b/drivers/gpu/drm/i915/gt/selftest_gt_pm.c @@ -43,7 +43,7 @@ static void measure_clocks(struct intel_engine_cs *engine, int i; for (i = 0; i < 5; i++) { - preempt_disable(); + local_irq_disable(); cycles[i] = -ENGINE_READ_FW(engine, RING_TIMESTAMP); dt[i] = ktime_get(); @@ -51,7 +51,7 @@ static void measure_clocks(struct intel_engine_cs *engine, dt[i] = ktime_sub(ktime_get(), dt[i]); cycles[i] += ENGINE_READ_FW(engine, RING_TIMESTAMP); - preempt_enable(); + local_irq_enable(); } /* Use the median of both cycle/dt; close enough */