linux/drivers/gpu/drm/i915/selftests/igt_live_test.h
Chris Wilson e4a8c8130b drm/i915/selftests: Refactor common live_test framework
Before adding yet another copy of struct live_test and its handler,
refactor the existing code into a common framework for live selftests.
For many live selftests, we want to know if the GPU hung or otherwise
misbehaved during the execution of the test (beyond any infraction in
the behaviour under test), live_test provides this by comparing the
GPU state before and after, alerting if it unexpectedly changed (e.g.
the reset counter changed). It also ensures that the GPU is idle before
and after the test, so that residual code running on the GPU is flushed
before testing.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190121222117.23305-5-chris@chris-wilson.co.uk
2019-01-22 13:01:20 +00:00

36 lines
819 B
C

/*
* SPDX-License-Identifier: MIT
*
* Copyright © 2019 Intel Corporation
*/
#ifndef IGT_LIVE_TEST_H
#define IGT_LIVE_TEST_H
#include "../i915_gem.h"
struct drm_i915_private;
struct igt_live_test {
struct drm_i915_private *i915;
const char *func;
const char *name;
unsigned int reset_global;
unsigned int reset_engine[I915_NUM_ENGINES];
};
/*
* Flush the GPU state before and after the test to ensure that no residual
* code is running on the GPU that may affect this test. Also compare the
* state before and after the test and alert if it unexpectedly changes,
* e.g. if the GPU was reset.
*/
int igt_live_test_begin(struct igt_live_test *t,
struct drm_i915_private *i915,
const char *func,
const char *name);
int igt_live_test_end(struct igt_live_test *t);
#endif /* IGT_LIVE_TEST_H */