mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-12 02:16:17 +00:00
tests/gem_reset_stats: stop rings after injecting hang
To make driver report a simulated hang in dmesg. Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
0afe006eac
commit
2dd312cbb8
@ -42,6 +42,7 @@
|
|||||||
#include "intel_batchbuffer.h"
|
#include "intel_batchbuffer.h"
|
||||||
#include "intel_gpu_tools.h"
|
#include "intel_gpu_tools.h"
|
||||||
#include "rendercopy.h"
|
#include "rendercopy.h"
|
||||||
|
#include "igt_debugfs.h"
|
||||||
|
|
||||||
#define RS_NO_ERROR 0
|
#define RS_NO_ERROR 0
|
||||||
#define RS_BATCH_ACTIVE (1 << 0)
|
#define RS_BATCH_ACTIVE (1 << 0)
|
||||||
@ -73,6 +74,8 @@ struct local_drm_i915_gem_context_destroy {
|
|||||||
#define CONTEXT_DESTROY_IOCTL DRM_IOWR(DRM_COMMAND_BASE + 0x2e, struct local_drm_i915_gem_context_destroy)
|
#define CONTEXT_DESTROY_IOCTL DRM_IOWR(DRM_COMMAND_BASE + 0x2e, struct local_drm_i915_gem_context_destroy)
|
||||||
#define GET_RESET_STATS_IOCTL DRM_IOWR(DRM_COMMAND_BASE + 0x32, struct local_drm_i915_reset_stats)
|
#define GET_RESET_STATS_IOCTL DRM_IOWR(DRM_COMMAND_BASE + 0x32, struct local_drm_i915_reset_stats)
|
||||||
|
|
||||||
|
static igt_debugfs_t dfs;
|
||||||
|
|
||||||
static uint32_t context_create(int fd)
|
static uint32_t context_create(int fd)
|
||||||
{
|
{
|
||||||
struct local_drm_i915_gem_context_create create;
|
struct local_drm_i915_gem_context_create create;
|
||||||
@ -192,6 +195,17 @@ static int exec_valid(int fd, int ctx)
|
|||||||
return exec.handle;
|
return exec.handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void stop_rings(void)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
fd = igt_debugfs_open(&dfs, "i915_ring_stop", O_WRONLY);
|
||||||
|
igt_assert(fd >= 0);
|
||||||
|
|
||||||
|
igt_assert(write(fd, "0xff", 4) == 4);
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
|
||||||
#define BUFSIZE (4 * 1024)
|
#define BUFSIZE (4 * 1024)
|
||||||
#define ITEMS (BUFSIZE >> 2)
|
#define ITEMS (BUFSIZE >> 2)
|
||||||
|
|
||||||
@ -284,6 +298,8 @@ static int inject_hang(int fd, int ctx)
|
|||||||
|
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
|
stop_rings();
|
||||||
|
|
||||||
return exec.handle;
|
return exec.handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -743,6 +759,8 @@ igt_main
|
|||||||
"Kernel is too old, or contexts not supported: %s\n",
|
"Kernel is too old, or contexts not supported: %s\n",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
|
|
||||||
|
assert(igt_debugfs_init(&dfs) == 0);
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user