mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 06:01:53 +02:00
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 <chris.p.wilson@intel.com>
Cc: Badal Nilawar <badal.nilawar@intel.com>
Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211130132005.6305-1-anshuman.gupta@intel.com
This commit is contained in:
parent
487970e8bb
commit
2ebc9e4af0
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user