Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 01:23:52 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/include: i915_trace.h

Log Message:
Update i915 trace points.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/include/i915_trace.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/include/i915_trace.h
diff -u src/sys/external/bsd/drm2/include/i915_trace.h:1.14 src/sys/external/bsd/drm2/include/i915_trace.h:1.15
--- src/sys/external/bsd/drm2/include/i915_trace.h:1.14	Mon Aug 27 15:25:28 2018
+++ src/sys/external/bsd/drm2/include/i915_trace.h	Sun Dec 19 01:23:52 2021
@@ -1,7 +1,7 @@
-/*	$NetBSD: i915_trace.h,v 1.14 2018/08/27 15:25:28 riastradh Exp $	*/
+/*	$NetBSD: i915_trace.h,v 1.15 2021/12/19 01:23:52 riastradh Exp $	*/
 
 /*-
- * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * Copyright (c) 2013, 2018 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
@@ -35,58 +35,78 @@
 #include <sys/types.h>
 #include <sys/sdt.h>
 
+#include "i915_request.h"
 #include "intel_drv.h"
 
 /* Must come last.  */
 #include <drm/drm_trace_netbsd.h>
 
-DEFINE_TRACE2(i915,, flip__request,
-    "enum plane"/*plane*/, "struct drm_i915_gem_object *"/*obj*/);
+DEFINE_TRACE3(i915,, cpu__fifo__underrun,
+    "enum i915_pipe"/*pipe*/,
+    "uint32_t"/*frame*/,
+    "uint32_t"/*scanline*/);
 static inline void
-trace_i915_flip_request(enum plane plane, struct drm_i915_gem_object *obj)
+trace_intel_cpu_fifo_underrun(struct drm_i915_private *dev_priv,
+    enum i915_pipe pipe)
 {
-	TRACE2(i915,, flip__request,  plane, obj);
+	TRACE3(i915,, cpu__fifo__underrun,
+	    pipe,
+	    dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, pipe),
+	    intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, pipe)));
 }
 
-DEFINE_TRACE2(i915,, flip__complete,
-    "enum plane"/*plane*/, "struct drm_i915_gem_object *"/*obj*/);
+DEFINE_TRACE3(i915,, pch__fifo__underrun,
+    "enum i915_pipe"/*pipe*/,
+    "uint32_t"/*frame*/,
+    "uint32_t"/*scanline*/);
 static inline void
-trace_i915_flip_complete(enum plane plane, struct drm_i915_gem_object *obj)
+trace_intel_pch_fifo_underrun(struct drm_i915_private *dev_priv,
+    enum i915_pipe pipe)
 {
-	TRACE2(i915,, flip__complete,  plane, obj);
+	TRACE3(i915,, pch__fifo__underrun,
+	    pipe,
+	    dev_priv->drm.driver->get_vblank_counter(&dev_priv->drm, pipe),
+	    intel_get_crtc_scanline(intel_get_crtc_for_pipe(dev_priv, pipe)));
 }
 
-DEFINE_TRACE4(i915,, gem__evict,
+DEFINE_TRACE5(i915,, gem__evict,
     "int"/*devno*/,
-    "int"/*min_size*/, "unsigned"/*alignment*/, "unsigned"/*flags*/);
+    "struct i915_address_space *"/*vm*/,
+    "uint64_t"/*size*/,
+    "uint64_t"/*align*/,
+    "unsigned"/*flags*/);
 static inline void
-trace_i915_gem_evict(struct drm_device *dev, int min_size, unsigned alignment,
-    unsigned flags)
+trace_i915_gem_evict(struct i915_address_space *vm,
+    uint64_t size, uint64_t align, unsigned flags)
 {
-	TRACE4(i915,, gem__evict,
-	    dev->primary->index, min_size, alignment, flags);
+	TRACE5(i915,, gem__evict,
+	    vm->i915->drm.primary->index, vm, size, align, flags);
 }
 
-DEFINE_TRACE2(i915,, gem__evict__vm,
-    "int"/*devno*/, "struct i915_address_space *"/*vm*/);
+DEFINE_TRACE6(i915,, gem__evict__node,
+    "int"/*devno*/,
+    "struct i915_address_space *"/*vm*/,
+    "uint64_t"/*start*/,
+    "uint64_t"/*size*/,
+    "unsigned long"/*color*/,
+    "unsigned"/*flags*/);
 static inline void
-trace_i915_gem_evict_vm(struct i915_address_space *vm)
+trace_i915_gem_evict_node(struct i915_address_space *vm,
+    struct drm_mm_node *node, unsigned flags)
 {
-	TRACE2(i915,, gem__evict__vm,  vm->dev->primary->index, vm);
+	TRACE6(i915,, gem__evict__node,
+	    vm->i915->drm.primary->index, vm,
+	    node->start, node->size, node->color,
+	    flags);
 }
 
-DEFINE_TRACE3(i915,, gem__object__change__domain,
-    "struct drm_i915_gem_object *"/*obj*/,
-    "uint32_t"/*read_domains*/,
-    "uint32_t"/*write_domain*/);
+DEFINE_TRACE2(i915,, gem__evict__vm,
+    "int"/*devno*/,
+    "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_gem_object_change_domain(struct drm_i915_gem_object *obj,
-    uint32_t old_read_domains, uint32_t old_write_domain)
+trace_i915_gem_evict_vm(struct i915_address_space *vm)
 {
-	TRACE3(i915,, gem__object__change__domain,
-	    obj,
-	    obj->base.read_domains | (old_read_domains << 16),
-	    obj->base.write_domain | (old_write_domain << 16));
+	TRACE2(i915,, gem__evict__vm,  vm->i915->drm.primary->index, vm);
 }
 
 DEFINE_TRACE1(i915,, gem__object__clflush,
@@ -149,104 +169,126 @@ trace_i915_gem_object_pwrite(struct drm_
 	TRACE3(i915,, gem__object__write,  obj, offset, size);
 }
 
-DEFINE_TRACE3(i915,, gem__request__add,
-    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
+#define	I915_DEFINE_TRACE_REQ(M, F, N)					      \
+	DEFINE_TRACE7(M, F, N,						      \
+	    "int"/*devno*/,						      \
+	    "unsigned"/*hw_id*/,					      \
+	    "uint8_t"/*uabi_class*/,					      \
+	    "uint8_t"/*instance*/,					      \
+	    "unsigned"/*context*/,					      \
+	    "unsigned"/*seqno*/,					      \
+	    "unsigned"/*global*/)
+
+#define	I915_TRACE_REQ(M, F, N, R)					      \
+	TRACE7(M, F, N,							      \
+	    (R)->i915->drm.primary->index,				      \
+	    (R)->gem_context->hw_id,					      \
+	    (R)->engine->uabi_class,					      \
+	    (R)->engine->instance,					      \
+	    (R)->fence.context,						      \
+	    (R)->fence.seqno,						      \
+	    (R)->global_seqno)
+
+I915_DEFINE_TRACE_REQ(i915,, request__queue);
+static inline void
+trace_i915_request_queue(struct i915_request *request, uint32_t flags)
+{
+	__USE(flags);		/* XXX too many trace operands */
+	I915_TRACE_REQ(i915,, request__queue,  request);
+}
+
+I915_DEFINE_TRACE_REQ(i915,, request__add);
 static inline void
-trace_i915_gem_request_add(struct drm_i915_gem_request *request)
+trace_i915_request_add(struct i915_request *request)
 {
-	TRACE3(i915,, gem__request__add,
-	    request->ring->dev->primary->index,
-	    request->ring->id,
-	    request->seqno);
+	I915_TRACE_REQ(i915,, request__add,  request);
 }
 
-DEFINE_TRACE3(i915,, gem__request__retire,
-    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
+I915_DEFINE_TRACE_REQ(i915,, request__submit);
 static inline void
-trace_i915_gem_request_retire(struct drm_i915_gem_request *request)
+trace_i915_request_submit(struct i915_request *request)
 {
-	TRACE3(i915,, gem__request__retire,
-	    request->ring->dev->primary->index,
-	    request->ring->id,
-	    request->seqno);
+	I915_TRACE_REQ(i915,, request__submit,  request);
 }
 
-DEFINE_TRACE3(i915,, gem__request__wait__begin,
-    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
+I915_DEFINE_TRACE_REQ(i915,, request__execute);
 static inline void
-trace_i915_gem_request_wait_begin(struct drm_i915_gem_request *request)
+trace_i915_request_execute(struct i915_request *request)
 {
-	TRACE3(i915,, gem__request__wait__begin,
-	    request->ring->dev->primary->index,
-	    request->ring->id,
-	    request->seqno);
+	I915_TRACE_REQ(i915,, request__execute,  request);
 }
 
-DEFINE_TRACE3(i915,, gem__request__wait__end,
-    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
+I915_DEFINE_TRACE_REQ(i915,, request__in);
 static inline void
-trace_i915_gem_request_wait_end(struct drm_i915_gem_request *request)
+trace_i915_request_in(struct i915_request *request, unsigned port)
 {
-	TRACE3(i915,, gem__request__wait__end,
-	    request->ring->dev->primary->index,
-	    request->ring->id,
-	    request->seqno);
+	__USE(port);		/* XXX too many trace operands */
+	I915_TRACE_REQ(i915,, request__in,  request);
 }
 
-DEFINE_TRACE3(i915,, gem__request__notify,
-    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
+I915_DEFINE_TRACE_REQ(i915,, request__out);
 static inline void
-trace_i915_gem_request_notify(struct intel_engine_cs *ring)
+trace_i915_request_out(struct i915_request *request)
 {
-	TRACE3(i915,, gem__request__notify,
-	    ring->dev->primary->index, ring->id, ring->get_seqno(ring, false));
+	/* XXX i915_request_completed(request) */
+	I915_TRACE_REQ(i915,, request__out,  request);
 }
 
-/* XXX Why no request in the trace upstream?  */
-DEFINE_TRACE4(i915,, gem__ring__dispatch,
-    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/, "uint32_t"/*flags*/);
+I915_DEFINE_TRACE_REQ(i915,, request__retire);
 static inline void
-trace_i915_gem_ring_dispatch(struct drm_i915_gem_request *request,
-    uint32_t flags)
+trace_i915_request_retire(struct i915_request *request)
 {
-	TRACE4(i915,, gem__ring__dispatch,
-	    request->ring->dev->primary->index,
-	    request->ring->id,
-	    request->seqno,
-	    flags);
-	/* XXX i915_trace_irq_get?  Doesn't seem to be used.  */
+	I915_TRACE_REQ(i915,, request__retire, request);
+}
+
+I915_DEFINE_TRACE_REQ(i915,, request__wait__begin);
+static inline void
+trace_i915_request_wait_begin(struct i915_request *request)
+{
+	I915_TRACE_REQ(i915,, request__wait__begin, request);
+}
+
+I915_DEFINE_TRACE_REQ(i915,, request__wait__end);
+static inline void
+trace_i915_request_wait_end(struct i915_request *request)
+{
+	I915_TRACE_REQ(i915,, request__wait__end, request);
 }
 
-DEFINE_TRACE4(i915,, gem__ring__flush,
+DEFINE_TRACE5(i915,, engine__notify,
     "int"/*devno*/,
-    "int"/*ringid*/,
-    "uint32_t"/*invalidate*/,
-    "uint32_t"/*flags*/);
-static inline void
-trace_i915_gem_ring_flush(struct drm_i915_gem_request *request,
-    uint32_t invalidate, uint32_t flags)
-{
-	TRACE4(i915,, gem__ring__flush,
-	    request->ring->dev->primary->index,
-	    request->ring->id,
-	    invalidate,
-	    flags);
+    "uint8_t"/*uabi_class*/,
+    "uint8_t"/*instance*/,
+    "unsigned"/*seqno*/,
+    "bool"/*waiters*/);
+static inline void
+trace_intel_engine_notify(struct intel_engine_cs *engine, bool waiters)
+{
+	TRACE5(i915,, engine__notify,
+	    engine->i915->drm.primary->index,
+	    engine->uabi_class,
+	    engine->instance,
+	    intel_engine_get_seqno(engine),
+	    waiters);
 }
 
-DEFINE_TRACE4(i915,, gem__ring__sync__to,
+DEFINE_TRACE6(i915,, gem__ring__sync__to,
     "int"/*devno*/,
-    "int"/*from_ringid*/,
-    "int"/*to_ringid*/,
-    "uint32_t"/*seqno*/);
-static inline void
-trace_i915_gem_ring_sync_to(struct drm_i915_gem_request *to_req,
-    struct intel_engine_cs *from, struct drm_i915_gem_request *from_req)
-{
-	TRACE4(i915,, gem__ring__sync__to,
-	    from->dev->primary->index,
-	    from->id,
-	    to_req->ring->id,
-	    i915_gem_request_get_seqno(from_req));
+    "uint8_t"/*from_class*/,
+    "uint8_t"/*from_instance*/,
+    "uint8_t"/*to_class*/,
+    "uint8_t"/*to_instance*/,
+    "unsigned"/*seqno*/);
+static inline void
+trace_i915_gem_ring_sync_to(struct i915_request *to, struct i915_request *from)
+{
+	TRACE6(i915,, gem__ring__sync__to,
+	    from->i915->drm.primary->index,
+	    from->engine->uabi_class,
+	    from->engine->instance,
+	    to->engine->uabi_class,
+	    to->engine->instance,
+	    from->global_seqno);
 }
 
 DEFINE_TRACE3(i915,, register__read,
@@ -254,15 +296,17 @@ DEFINE_TRACE3(i915,, register__read,
 DEFINE_TRACE3(i915,, register__write,
     "uint32_t"/*reg*/, "uint64_t"/*value*/, "size_t"/*len*/);
 static inline void
-trace_i915_reg_rw(bool write, uint32_t reg, uint64_t value, size_t len,
+trace_i915_reg_rw(bool write, i915_reg_t reg, uint64_t value, size_t len,
     bool trace)
 {
+	uint32_t regoff = i915_mmio_reg_offset(reg);
+
 	if (!trace)
 		return;
 	if (write) {
-		TRACE3(i915,, register__read,  reg, value, len);
+		TRACE3(i915,, register__read,  regoff, value, len);
 	} else {
-		TRACE3(i915,, register__write,  reg, value, len);
+		TRACE3(i915,, register__write,  regoff, value, len);
 	}
 }
 
@@ -299,30 +343,34 @@ trace_intel_gpu_freq_change(int freq)
 	TRACE1(i915,, gpu__freq__change,  freq);
 }
 
-DEFINE_TRACE3(i915,, context__create,
+DEFINE_TRACE4(i915,, context__create,
     "int"/*devno*/,
-    "struct intel_context *"/*ctx*/,
+    "struct i915_gem_context *"/*ctx*/,
+    "unsigned"/*hw_id*/,
     "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_context_create(struct intel_context *ctx)
+trace_i915_context_create(struct i915_gem_context *ctx)
 {
-	TRACE3(i915,, context__create,
-	    ctx->i915->dev->primary->index,
+	TRACE4(i915,, context__create,
+	    ctx->i915->drm.primary->index,
 	    ctx,
-	    (ctx->ppgtt ? &ctx->ppgtt->base : NULL));
+	    ctx->hw_id,
+	    (ctx->ppgtt ? &ctx->ppgtt->vm : NULL));
 }
 
-DEFINE_TRACE3(i915,, context__free,
+DEFINE_TRACE4(i915,, context__free,
     "int"/*devno*/,
-    "struct intel_context *"/*ctx*/,
+    "struct i915_gem_context *"/*ctx*/,
+    "unsigned"/*hw_id*/,
     "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_context_free(struct intel_context *ctx)
+trace_i915_context_free(struct i915_gem_context *ctx)
 {
-	TRACE3(i915,, context__free,
-	    ctx->i915->dev->primary->index,
+	TRACE4(i915,, context__free,
+	    ctx->i915->drm.primary->index,
 	    ctx,
-	    (ctx->ppgtt ? &ctx->ppgtt->base : NULL));
+	    ctx->hw_id,
+	    (ctx->ppgtt ? &ctx->ppgtt->vm : NULL));
 }
 
 DEFINE_TRACE4(i915,, page_directory_entry_alloc,
@@ -382,7 +430,7 @@ DEFINE_TRACE2(i915,, ppgtt__create,
 static inline void
 trace_i915_ppgtt_create(struct i915_address_space *vm)
 {
-	TRACE2(i915,, ppgtt__create,  vm->dev->primary->index, vm);
+	TRACE2(i915,, ppgtt__create,  vm->i915->drm.primary->index, vm);
 }
 
 DEFINE_TRACE2(i915,, ppgtt__release,
@@ -391,7 +439,7 @@ DEFINE_TRACE2(i915,, ppgtt__release,
 static inline void
 trace_i915_ppgtt_release(struct i915_address_space *vm)
 {
-	TRACE2(i915,, ppgtt__release,  vm->dev->primary->index, vm);
+	TRACE2(i915,, ppgtt__release,  vm->i915->drm.primary->index, vm);
 }
 
 #define	VM_TO_TRACE_NAME(vm)	(i915_is_ggtt(vm) ? "G" : "P")
@@ -418,7 +466,7 @@ trace_i915_gem_shrink(struct drm_i915_pr
     unsigned flags)
 {
 	TRACE3(i915,, gem__shrink,
-	    dev_priv->dev->primary->index, target, flags);
+	    dev_priv->drm.primary->index, target, flags);
 }
 
 DEFINE_TRACE5(i915,, pipe__update__start,
@@ -467,19 +515,4 @@ trace_i915_pipe_update_end(struct intel_
 	TRACE3(i915,, pipe__update__end,  crtc->pipe, frame, scanline);
 }
 
-DEFINE_TRACE4(i915,, switch__mm,
-    "int"/*devno*/,
-    "int"/*ringid*/,
-    "struct intel_context *"/*to*/,
-    "struct i915_address_space *"/*vm*/);
-static inline void
-trace_switch_mm(struct intel_engine_cs *ring, struct intel_context *to)
-{
-	TRACE4(i915,, switch__mm,
-	    ring->dev->primary->index,
-	    ring->id,
-	    to,
-	    to->ppgtt ? &to->ppgtt->base : NULL);
-}
-
 #endif  /* _I915_TRACE_H_ */

Reply via email to