Quoting Lionel Landwerlin (2020-04-28 11:08:14) > @@ -2837,6 +2851,7 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream, > { > struct drm_i915_private *i915 = stream->perf->i915; > struct i915_perf *perf = stream->perf; > + struct intel_timeline *timeline; > int format_size; > int ret; > > @@ -2946,10 +2961,30 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream, > > stream->ops = &i915_oa_stream_ops; > > + timeline = intel_timeline_create(stream->engine->gt, NULL); > + if (IS_ERR(timeline)) { > + ret = PTR_ERR(timeline); > + goto err_timeline; > + } > + > + stream->config_context = intel_context_create(stream->engine); > + if (IS_ERR(stream->config_context)) { > + intel_timeline_put(timeline); > + ret = PTR_ERR(stream->config_context); > + goto err_timeline; > + } > + > + stream->config_context->sseu = props->sseu; > + stream->config_context->timeline = timeline; Timeline? > + > + ret = intel_context_pin(stream->config_context); One is created for the context here [via intel_context_alloc]. I was intrigued as I thought you might have had something special planned with multiple contexts sharing a timeline Do we need to permanently pin the context? We can fail the OA config change request, right? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx