Commit a5efcde6 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/perf: Replace global wakeref tracking with engine-pm



As we now have a specific engine to use OA on, exchange the top-level
runtime-pm wakeref with the engine-pm. This still results in the same
top-level runtime-pm, but with more nuances to keep the engine and its
gt awake.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191011190325.10979-1-chris@chris-wilson.co.uk
parent cd9ba7b6
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -196,7 +196,7 @@
#include <linux/uuid.h>
#include <linux/uuid.h>


#include "gem/i915_gem_context.h"
#include "gem/i915_gem_context.h"
#include "gem/i915_gem_pm.h"
#include "gt/intel_engine_pm.h"
#include "gt/intel_engine_user.h"
#include "gt/intel_engine_user.h"
#include "gt/intel_lrc_reg.h"
#include "gt/intel_lrc_reg.h"


@@ -1353,7 +1353,7 @@ static void i915_oa_stream_destroy(struct i915_perf_stream *stream)
	free_oa_buffer(stream);
	free_oa_buffer(stream);


	intel_uncore_forcewake_put(stream->uncore, FORCEWAKE_ALL);
	intel_uncore_forcewake_put(stream->uncore, FORCEWAKE_ALL);
	intel_runtime_pm_put(stream->uncore->rpm, stream->wakeref);
	intel_engine_pm_put(stream->engine);


	if (stream->ctx)
	if (stream->ctx)
		oa_put_render_ctx_id(stream);
		oa_put_render_ctx_id(stream);
@@ -2218,7 +2218,7 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream,
	 *   In our case we are expecting that taking pm + FORCEWAKE
	 *   In our case we are expecting that taking pm + FORCEWAKE
	 *   references will effectively disable RC6.
	 *   references will effectively disable RC6.
	 */
	 */
	stream->wakeref = intel_runtime_pm_get(stream->uncore->rpm);
	intel_engine_pm_get(stream->engine);
	intel_uncore_forcewake_get(stream->uncore, FORCEWAKE_ALL);
	intel_uncore_forcewake_get(stream->uncore, FORCEWAKE_ALL);


	ret = alloc_oa_buffer(stream);
	ret = alloc_oa_buffer(stream);
@@ -2252,7 +2252,7 @@ err_oa_buf_alloc:
	put_oa_config(stream->oa_config);
	put_oa_config(stream->oa_config);


	intel_uncore_forcewake_put(stream->uncore, FORCEWAKE_ALL);
	intel_uncore_forcewake_put(stream->uncore, FORCEWAKE_ALL);
	intel_runtime_pm_put(stream->uncore->rpm, stream->wakeref);
	intel_engine_pm_put(stream->engine);


err_config:
err_config:
	if (stream->ctx)
	if (stream->ctx)
+0 −6
Original line number Original line Diff line number Diff line
@@ -134,12 +134,6 @@ struct i915_perf_stream {
	 */
	 */
	struct intel_uncore *uncore;
	struct intel_uncore *uncore;


	/**
	 * @wakeref: As we keep the device awake while the perf stream is
	 * active, we track our runtime pm reference for later release.
	 */
	intel_wakeref_t wakeref;

	/**
	/**
	 * @engine: Engine associated with this performance stream.
	 * @engine: Engine associated with this performance stream.
	 */
	 */