Lines Matching defs:engine
303 * Signal sampling timer to stop if only engine events are enabled and
349 static void engine_sample(struct intel_engine_cs *engine, unsigned int period_ns)
351 struct intel_engine_pmu *pmu = &engine->pmu;
355 val = ENGINE_READ_FW(engine, RING_CTL);
356 if (val == 0) /* powerwell off => engine idle */
365 if (intel_engine_supports_stats(engine))
372 * engine being busy. Therefore, we record the sample as being
377 val = ENGINE_READ_FW(engine, RING_MI_MODE);
388 struct intel_engine_cs *engine;
398 for_each_engine(engine, gt, id) {
399 if (!engine->pmu.enable)
402 if (!intel_engine_pm_get_if_awake(engine))
406 spin_lock_irqsave(&engine->uncore->lock, flags);
407 engine_sample(engine, period_ns);
408 spin_unlock_irqrestore(&engine->uncore->lock, flags);
410 engine_sample(engine, period_ns);
413 intel_engine_pm_put_async(engine);
517 engine_event_status(struct intel_engine_cs *engine,
525 if (GRAPHICS_VER(engine->i915) < 6)
577 struct intel_engine_cs *engine;
579 engine = intel_engine_lookup_user(i915, engine_event_class(event),
581 if (!engine)
584 return engine_event_status(engine, engine_event_sample(event));
638 struct intel_engine_cs *engine;
640 engine = intel_engine_lookup_user(i915,
644 if (drm_WARN_ON_ONCE(&i915->drm, !engine)) {
647 intel_engine_supports_stats(engine)) {
650 val = ktime_to_ns(intel_engine_get_busy_time(engine,
653 val = engine->pmu.sample[sample].cur;
739 * For per-engine events the bitmask and reference counting
740 * is stored per engine.
744 struct intel_engine_cs *engine;
746 engine = intel_engine_lookup_user(i915,
750 BUILD_BUG_ON(ARRAY_SIZE(engine->pmu.enable_count) !=
752 BUILD_BUG_ON(ARRAY_SIZE(engine->pmu.sample) !=
754 GEM_BUG_ON(sample >= ARRAY_SIZE(engine->pmu.enable_count));
755 GEM_BUG_ON(sample >= ARRAY_SIZE(engine->pmu.sample));
756 GEM_BUG_ON(engine->pmu.enable_count[sample] == ~0);
758 engine->pmu.enable |= BIT(sample);
759 engine->pmu.enable_count[sample]++;
788 struct intel_engine_cs *engine;
790 engine = intel_engine_lookup_user(i915,
794 GEM_BUG_ON(sample >= ARRAY_SIZE(engine->pmu.enable_count));
795 GEM_BUG_ON(sample >= ARRAY_SIZE(engine->pmu.sample));
796 GEM_BUG_ON(engine->pmu.enable_count[sample] == 0);
802 if (--engine->pmu.enable_count[sample] == 0)
803 engine->pmu.enable &= ~BIT(sample);
1011 struct intel_engine_cs *engine;
1025 for_each_uabi_engine(engine, i915) {
1027 if (!engine_event_status(engine,
1051 /* Initialize supported non-engine counters. */
1088 /* Initialize supported engine counters. */
1089 for_each_uabi_engine(engine, i915) {
1093 if (engine_event_status(engine,
1098 engine->name, engine_events[i].name);
1105 __I915_PMU_ENGINE(engine->uabi_class,
1106 engine->uabi_instance,
1110 engine->name, engine_events[i].name);