Re: [PATCH 4/5] drm/i915: add a new perf configuration execbuf parameter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28/05/2019 11:52, Chris Wilson wrote:
Quoting Lionel Landwerlin (2019-05-21 15:08:54)
@@ -2048,6 +2081,42 @@ static int eb_submit(struct i915_execbuffer *eb)
                         return err;
         }
if (eb->oa_config) {
	err = i915_active_request_set(&eb->i915->perf.oa.oa_config_active,
				      eb->request);
	if (err)
		return err;
}

with the addition of
	struct i915_active_request oa_config_active;
to i915->perf.oa, and i915_active_init; That will ensure that the
oa_config can't be changed before execution (and the ordering restriction
is essentially a no-op if only one context has a specified oa_config).

+       if (eb->oa_config &&
+           eb->oa_config != eb->i915->perf.oa.exclusive_stream->oa_config) {
Fwiw, I would move these to eb_oa_config().

if (eb->oa_config) {
	err = eb_oa_config(eb);
	if (err)
		return err;
}

How does eb_oa_config mix with the global gen8_configure_all_contexts()?


Excellent point, I should document this.


HW configurations have roughly 3 parts :

   - NOA configuration, network configuration to source specific data from anywhere (global, non power saved/restored)

   - Boolean counters, filters signals brought by NOA (global, can't remember whether saved/restored)

   - Flex counters, filters on events happening within the EUs (per context, saved/restored)


First two will affect all running contexts (because global), last one will only be applied to the context that triggered the execbuf.

That should be fine because of the other requirement we need (don't preempt the context running a performance query).


-Lionel


-Chris


_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux