linux/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c

// SPDX-License-Identifier: MIT
/*
 * Copyright © 2019 Intel Corporation
 */

#include "i915_drv.h"
#include "i915_request.h"

#include "intel_context.h"
#include "intel_engine_heartbeat.h"
#include "intel_engine_pm.h"
#include "intel_engine.h"
#include "intel_gt.h"
#include "intel_reset.h"

/*
 * While the engine is active, we send a periodic pulse along the engine
 * to check on its health and to flush any idle-barriers. If that request
 * is stuck, and we fail to preempt it, we declare the engine hung and
 * issue a reset -- in the hope that restores progress.
 */

static bool next_heartbeat(struct intel_engine_cs *engine)
{}

static struct i915_request *
heartbeat_create(struct intel_context *ce, gfp_t gfp)
{}

static void idle_pulse(struct intel_engine_cs *engine, struct i915_request *rq)
{}

static void heartbeat_commit(struct i915_request *rq,
			     const struct i915_sched_attr *attr)
{}

static void show_heartbeat(const struct i915_request *rq,
			   struct intel_engine_cs *engine)
{}

static void
reset_engine(struct intel_engine_cs *engine, struct i915_request *rq)
{}

static void heartbeat(struct work_struct *wrk)
{}

void intel_engine_unpark_heartbeat(struct intel_engine_cs *engine)
{}

void intel_engine_park_heartbeat(struct intel_engine_cs *engine)
{}

void intel_gt_unpark_heartbeats(struct intel_gt *gt)
{}

void intel_gt_park_heartbeats(struct intel_gt *gt)
{}

void intel_engine_init_heartbeat(struct intel_engine_cs *engine)
{}

static int __intel_engine_pulse(struct intel_engine_cs *engine)
{}

static unsigned long set_heartbeat(struct intel_engine_cs *engine,
				   unsigned long delay)
{}

int intel_engine_set_heartbeat(struct intel_engine_cs *engine,
			       unsigned long delay)
{}

int intel_engine_pulse(struct intel_engine_cs *engine)
{}

int intel_engine_flush_barriers(struct intel_engine_cs *engine)
{}

#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
#include "selftest_engine_heartbeat.c"
#endif