Module Name:    src
Committed By:   riastradh
Date:           Mon Aug 27 15:09:35 UTC 2018

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915: i915_drv.h i915_gem_fence.c
            i915_guc_submission.c intel_csr.c intel_guc_loader.c intel_lrc.c
            intel_pm.c intel_sprite.c intel_uncore.c
        src/sys/external/bsd/drm2/i915drm: intel_dsi.c intelfb.c
        src/sys/external/bsd/drm2/include: i915_trace.h

Log Message:
Use dtrace probes to implement i915_trace.h.


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c
cvs rdiff -u -r1.7 -r1.8 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_guc_submission.c
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_csr.c
cvs rdiff -u -r1.11 -r1.12 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_guc_loader.c
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c
cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c
cvs rdiff -u -r1.9 -r1.10 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c
cvs rdiff -u -r1.1 -r1.2 src/sys/external/bsd/drm2/i915drm/intel_dsi.c
cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/i915drm/intelfb.c
cvs rdiff -u -r1.12 -r1.13 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/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.25 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.26
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.25	Mon Aug 27 14:49:22 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.h,v 1.25 2018/08/27 14:49:22 riastradh Exp $	*/
+/*	$NetBSD: i915_drv.h,v 1.26 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /* i915_drv.h -- Private header for the I915 driver -*- linux-c -*-
  */
@@ -2709,8 +2709,6 @@ struct drm_i915_cmd_table {
 #define GT_FREQUENCY_MULTIPLIER 50
 #define GEN9_FREQ_SCALER 3
 
-#include "i915_trace.h"
-
 extern const struct drm_ioctl_desc i915_ioctls[];
 extern int i915_max_ioctl;
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c:1.4	Mon Aug 27 07:17:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_fence.c,v 1.4 2018/08/27 07:17:35 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_fence.c,v 1.5 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2008-2015 Intel Corporation
@@ -24,11 +24,12 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_fence.c,v 1.4 2018/08/27 07:17:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_fence.c,v 1.5 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <drm/drmP.h>
 #include <drm/i915_drm.h>
 #include "i915_drv.h"
+#include "intel_drv.h"
 
 /**
  * DOC: fence register handling

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_guc_submission.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_guc_submission.c:1.7 src/sys/external/bsd/drm2/dist/drm/i915/i915_guc_submission.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_guc_submission.c:1.7	Mon Aug 27 07:17:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_guc_submission.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_guc_submission.c,v 1.7 2018/08/27 07:17:35 riastradh Exp $	*/
+/*	$NetBSD: i915_guc_submission.c,v 1.8 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -24,13 +24,14 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_guc_submission.c,v 1.7 2018/08/27 07:17:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_guc_submission.c,v 1.8 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <linux/bitmap.h>
 #include <linux/firmware.h>
 #include <linux/circ_buf.h>
 #include <asm/cpufeature.h>
 #include "i915_drv.h"
+#include "intel_drv.h"
 #include "intel_guc.h"
 
 /**

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_csr.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_csr.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_csr.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_csr.c:1.3	Mon Aug 27 07:25:06 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_csr.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_csr.c,v 1.3 2018/08/27 07:25:06 riastradh Exp $	*/
+/*	$NetBSD: intel_csr.c,v 1.4 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -24,12 +24,13 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_csr.c,v 1.3 2018/08/27 07:25:06 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_csr.c,v 1.4 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <linux/firmware.h>
 #include <linux/module.h>
 #include "i915_drv.h"
 #include "i915_reg.h"
+#include "intel_drv.h"
 
 /**
  * DOC: csr support for dmc

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_guc_loader.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_guc_loader.c:1.11 src/sys/external/bsd/drm2/dist/drm/i915/intel_guc_loader.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_guc_loader.c:1.11	Mon Aug 27 13:43:01 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_guc_loader.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_guc_loader.c,v 1.11 2018/08/27 13:43:01 riastradh Exp $	*/
+/*	$NetBSD: intel_guc_loader.c,v 1.12 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -29,11 +29,12 @@
  *    Alex Dai <[email protected]>
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_guc_loader.c,v 1.11 2018/08/27 13:43:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_guc_loader.c,v 1.12 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <linux/firmware.h>
 #include <linux/module.h>
 #include "i915_drv.h"
+#include "intel_drv.h"
 #include "intel_guc.h"
 
 /**

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.8	Mon Aug 27 14:53:12 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_lrc.c,v 1.8 2018/08/27 14:53:12 riastradh Exp $	*/
+/*	$NetBSD: intel_lrc.c,v 1.9 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -135,11 +135,13 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.8 2018/08/27 14:53:12 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.9 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <drm/drmP.h>
 #include <drm/i915_drm.h>
 #include "i915_drv.h"
+#include "i915_trace.h"
+#include "intel_drv.h"
 #include "intel_mocs.h"
 
 #define GEN9_LR_CONTEXT_RENDER_SIZE (22 * PAGE_SIZE)
Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c:1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c:1.8	Mon Aug 27 14:43:00 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_sprite.c,v 1.8 2018/08/27 14:43:00 riastradh Exp $	*/
+/*	$NetBSD: intel_sprite.c,v 1.9 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2011 Intel Corporation
@@ -32,7 +32,7 @@
  * support.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_sprite.c,v 1.8 2018/08/27 14:43:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_sprite.c,v 1.9 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <drm/drmP.h>
 #include <drm/drm_crtc.h>
@@ -43,6 +43,7 @@ __KERNEL_RCSID(0, "$NetBSD: intel_sprite
 #include "intel_drv.h"
 #include <drm/i915_drm.h>
 #include "i915_drv.h"
+#include "i915_trace.h"
 
 static bool
 format_is_yuv(uint32_t format)

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.14 src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.14	Mon Aug 27 07:29:37 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_pm.c,v 1.14 2018/08/27 07:29:37 riastradh Exp $	*/
+/*	$NetBSD: intel_pm.c,v 1.15 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2012 Intel Corporation
@@ -28,12 +28,13 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_pm.c,v 1.14 2018/08/27 07:29:37 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_pm.c,v 1.15 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <linux/bitops.h>
 #include <linux/cpufreq.h>
 #include <linux/export.h>
 #include "i915_drv.h"
+#include "i915_trace.h"
 #include "intel_drv.h"
 #ifndef __NetBSD__
 #include "../../../platform/x86/intel_ips.h"

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c:1.9 src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c:1.9	Mon Aug 27 13:43:39 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_uncore.c,v 1.9 2018/08/27 13:43:39 riastradh Exp $	*/
+/*	$NetBSD: intel_uncore.c,v 1.10 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -24,11 +24,12 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_uncore.c,v 1.9 2018/08/27 13:43:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_uncore.c,v 1.10 2018/08/27 15:09:35 riastradh Exp $");
 
 #include "i915_drv.h"
 #include "intel_drv.h"
 #include "i915_vgpu.h"
+#include "i915_trace.h"
 
 #include <linux/err.h>
 #include <linux/pm_runtime.h>

Index: src/sys/external/bsd/drm2/i915drm/intel_dsi.c
diff -u src/sys/external/bsd/drm2/i915drm/intel_dsi.c:1.1 src/sys/external/bsd/drm2/i915drm/intel_dsi.c:1.2
--- src/sys/external/bsd/drm2/i915drm/intel_dsi.c:1.1	Mon Aug 27 13:35:15 2018
+++ src/sys/external/bsd/drm2/i915drm/intel_dsi.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_dsi.c,v 1.1 2018/08/27 13:35:15 riastradh Exp $	*/
+/*	$NetBSD: intel_dsi.c,v 1.2 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,9 +30,9 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_dsi.c,v 1.1 2018/08/27 13:35:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_dsi.c,v 1.2 2018/08/27 15:09:35 riastradh Exp $");
 
-#include "i915_drv.h"
+#include "intel_drv.h"
 
 void
 intel_dsi_init(struct drm_device *dev)

Index: src/sys/external/bsd/drm2/i915drm/intelfb.c
diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.14 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.15
--- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.14	Mon Dec 12 19:45:56 2016
+++ src/sys/external/bsd/drm2/i915drm/intelfb.c	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intelfb.c,v 1.14 2016/12/12 19:45:56 maya Exp $	*/
+/*	$NetBSD: intelfb.c,v 1.15 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.14 2016/12/12 19:45:56 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.15 2018/08/27 15:09:35 riastradh Exp $");
 
 #include <sys/types.h>
 #include <sys/bus.h>
@@ -42,6 +42,7 @@ __KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 
 
 #include "i915_drv.h"
 #include "i915_pci.h"
+#include "intel_drv.h"
 #include "intelfb.h"
 
 static int	intelfb_match(device_t, cfdata_t, void *);

Index: src/sys/external/bsd/drm2/include/i915_trace.h
diff -u src/sys/external/bsd/drm2/include/i915_trace.h:1.12 src/sys/external/bsd/drm2/include/i915_trace.h:1.13
--- src/sys/external/bsd/drm2/include/i915_trace.h:1.12	Mon Aug 27 07:27:38 2018
+++ src/sys/external/bsd/drm2/include/i915_trace.h	Mon Aug 27 15:09:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_trace.h,v 1.12 2018/08/27 07:27:38 riastradh Exp $	*/
+/*	$NetBSD: i915_trace.h,v 1.13 2018/08/27 15:09:35 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -33,235 +33,452 @@
 #define _I915_TRACE_H_
 
 #include <sys/types.h>
+#include <sys/sdt.h>
 
 #include "intel_drv.h"
 
-static inline void
-trace_i915_flip_request(enum plane plane __unused,
-    struct drm_i915_gem_object *obj __unused)
-{
-}
-
-static inline void
-trace_i915_flip_complete(enum plane plane __unused,
-    struct drm_i915_gem_object *obj __unused)
-{
-}
+/* Must come last.  */
+#include <drm/drm_trace_netbsd.h>
 
+DEFINE_TRACE2(i915,, flip__request,
+    "enum plane"/*plane*/, "struct drm_i915_gem_object *"/*obj*/);
 static inline void
-trace_i915_gem_evict(struct drm_device *dev __unused, int min_size __unused,
-    unsigned int alignment __unused, bool mappable __unused)
+trace_i915_flip_request(enum plane plane, struct drm_i915_gem_object *obj)
 {
+	TRACE2(i915,, flip__request,  plane, obj);
 }
 
+DEFINE_TRACE2(i915,, flip__complete,
+    "enum plane"/*plane*/, "struct drm_i915_gem_object *"/*obj*/);
 static inline void
-trace_i915_gem_evict_everything(struct drm_device *dev __unused)
+trace_i915_flip_complete(enum plane plane, struct drm_i915_gem_object *obj)
 {
+	TRACE2(i915,, flip__complete,  plane, obj);
 }
 
+DEFINE_TRACE4(i915,, gem__evict,
+    "int"/*devno*/,
+    "int"/*min_size*/, "unsigned"/*alignment*/, "unsigned"/*flags*/);
 static inline void
-trace_i915_gem_evict_vm(struct i915_address_space *vm __unused)
+trace_i915_gem_evict(struct drm_device *dev, int min_size, unsigned alignment,
+    unsigned flags)
 {
+	TRACE4(i915,, gem__evict,
+	    dev->primary->index, min_size, alignment, flags);
 }
 
+DEFINE_TRACE2(i915,, gem__evict__vm,
+    "int"/*devno*/, "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_gem_object_bind(struct drm_i915_gem_object *obj __unused,
-    bool map_and_fenceable __unused)
+trace_i915_gem_evict_vm(struct i915_address_space *vm)
 {
+	TRACE2(i915,, gem__evict__vm,  vm->dev->primary->index, vm);
 }
 
+DEFINE_TRACE3(i915,, gem__object__change__domain,
+    "struct drm_i915_gem_object *"/*obj*/,
+    "uint32_t"/*read_domains*/,
+    "uint32_t"/*write_domain*/);
 static inline void
-trace_i915_gem_object_change_domain(struct drm_i915_gem_object *obj __unused,
-    uint32_t read_domains __unused, uint32_t old_write_domain __unused)
+trace_i915_gem_object_change_domain(struct drm_i915_gem_object *obj,
+    uint32_t old_read_domains, uint32_t old_write_domain)
 {
+	TRACE3(i915,, gem__object__change__domain,
+	    obj,
+	    obj->base.read_domains | (old_read_domains << 16),
+	    obj->base.write_domain | (old_write_domain << 16));
 }
 
+DEFINE_TRACE1(i915,, gem__object__clflush,
+    "struct drm_i915_gem_object *"/*obj*/);
 static inline void
-trace_i915_gem_object_clflush(struct drm_i915_gem_object *obj __unused)
+trace_i915_gem_object_clflush(struct drm_i915_gem_object *obj)
 {
+	TRACE1(i915,, gem__object__clflush,  obj);
 }
 
+DEFINE_TRACE2(i915,, gem__object__create,
+    "struct drm_i915_gem_object *"/*obj*/,
+    "size_t"/*size*/);
 static inline void
-trace_i915_gem_object_create(struct drm_i915_gem_object *obj __unused)
+trace_i915_gem_object_create(struct drm_i915_gem_object *obj)
 {
+	TRACE2(i915,, gem__object__create,  obj, obj->base.size);
 }
 
+DEFINE_TRACE1(i915,, gem__object__destroy,
+    "struct drm_i915_gem_object *"/*obj*/);
 static inline void
-trace_i915_gem_object_destroy(struct drm_i915_gem_object *obj __unused)
+trace_i915_gem_object_destroy(struct drm_i915_gem_object *obj)
 {
+	TRACE1(i915,, gem__object__destroy,  obj);
 }
 
+DEFINE_TRACE4(i915,, gem__object__fault,
+    "struct drm_i915_gem_object *"/*obj*/,
+    "pgoff_t"/*page_offset*/,
+    "bool"/*gtt*/,
+    "bool"/*write*/);
 static inline void
-trace_i915_gem_object_fault(struct drm_i915_gem_object *obj __unused,
-    pgoff_t page_offset __unused, bool gtt __unused, bool write __unused)
+trace_i915_gem_object_fault(struct drm_i915_gem_object *obj,
+    pgoff_t page_offset, bool gtt, bool write)
 {
+	TRACE4(i915,, gem__object__fault,  obj, page_offset, gtt, write);
 }
 
+/* XXX Not sure about size/offset types here.  */
+DEFINE_TRACE3(i915,, gem__object__pread,
+    "struct drm_i915_gem_object *"/*obj*/,
+    "off_t"/*offset*/,
+    "size_t"/*size*/);
 static inline void
-trace_i915_gem_object_pread(struct drm_i915_gem_object *obj __unused,
-    uint32_t offset __unused, uint32_t size __unused)
+trace_i915_gem_object_pread(struct drm_i915_gem_object *obj, off_t offset,
+    size_t size)
 {
+	TRACE3(i915,, gem__object__pread,  obj, offset, size);
 }
 
+DEFINE_TRACE3(i915,, gem__object__write,
+    "struct drm_i915_gem_object *"/*obj*/,
+    "off_t"/*offset*/,
+    "size_t"/*size*/);
 static inline void
-trace_i915_gem_object_pwrite(struct drm_i915_gem_object *obj __unused,
-    uint32_t offset __unused, uint32_t size __unused)
-{
-}
-
-static inline void
-trace_i915_gem_object_unbind(struct drm_i915_gem_object *obj __unused)
+trace_i915_gem_object_pwrite(struct drm_i915_gem_object *obj, off_t offset,
+    size_t size)
 {
+	TRACE3(i915,, gem__object__write,  obj, offset, size);
 }
 
+DEFINE_TRACE3(i915,, gem__request__add,
+    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
 static inline void
 trace_i915_gem_request_add(struct drm_i915_gem_request *request)
 {
+	TRACE3(i915,, gem__request__add,
+	    request->ring->dev->primary->index,
+	    request->ring->id,
+	    request->seqno);
 }
 
+DEFINE_TRACE3(i915,, gem__request__retire,
+    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
 static inline void
-trace_i915_gem_request_retire(struct drm_i915_gem_request *request __unused)
+trace_i915_gem_request_retire(struct drm_i915_gem_request *request)
 {
+	TRACE3(i915,, gem__request__retire,
+	    request->ring->dev->primary->index,
+	    request->ring->id,
+	    request->seqno);
 }
 
+DEFINE_TRACE3(i915,, gem__request__wait__begin,
+    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
 static inline void
-trace_i915_gem_request_wait_begin(struct drm_i915_gem_request *request __unused)
+trace_i915_gem_request_wait_begin(struct drm_i915_gem_request *request)
 {
+	TRACE3(i915,, gem__request__wait__begin,
+	    request->ring->dev->primary->index,
+	    request->ring->id,
+	    request->seqno);
 }
 
+DEFINE_TRACE3(i915,, gem__request__wait__end,
+    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
 static inline void
-trace_i915_gem_request_wait_end(struct drm_i915_gem_request *request __unused)
+trace_i915_gem_request_wait_end(struct drm_i915_gem_request *request)
 {
+	TRACE3(i915,, gem__request__wait__end,
+	    request->ring->dev->primary->index,
+	    request->ring->id,
+	    request->seqno);
 }
 
+DEFINE_TRACE3(i915,, gem__request__notify,
+    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
 static inline void
-trace_i915_gem_request_notify(struct intel_engine_cs *ring __unused)
+trace_i915_gem_request_notify(struct intel_engine_cs *ring)
 {
+	TRACE3(i915,, gem__request__notify,
+	    ring->dev->primary->index, ring->id, ring->get_seqno(ring, false));
 }
 
+/* XXX Why no request in the trace upstream?  */
+DEFINE_TRACE4(i915,, gem__ring__dispatch,
+    "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/, "uint32_t"/*flags*/);
 static inline void
-trace_i915_gem_ring_dispatch(struct drm_i915_gem_request *request __unused,
-    uint32_t flags __unused)
+trace_i915_gem_ring_dispatch(struct drm_i915_gem_request *request,
+    uint32_t flags)
 {
+	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.  */
 }
 
+DEFINE_TRACE4(i915,, gem__ring__flush,
+    "int"/*devno*/,
+    "int"/*ringid*/,
+    "uint32_t"/*invalidate*/,
+    "uint32_t"/*flags*/);
 static inline void
-trace_i915_gem_ring_flush(struct drm_i915_gem_request *request __unused,
-    uint32_t invalidate __unused, uint32_t flags __unused)
+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);
 }
 
+DEFINE_TRACE4(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 __unused,
-    struct intel_engine_cs *from __unused,
-    struct drm_i915_gem_request *from_req __unused)
+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));
 }
 
+DEFINE_TRACE3(i915,, register__read,
+    "uint32_t"/*reg*/, "uint64_t"/*value*/, "size_t"/*len*/);
+DEFINE_TRACE3(i915,, register__write,
+    "uint32_t"/*reg*/, "uint64_t"/*value*/, "size_t"/*len*/);
 static inline void
-trace_i915_reg_rw(bool write __unused, uint32_t reg __unused,
-    uint64_t value __unused, size_t len __unused, bool trace __unused)
+trace_i915_reg_rw(bool write, uint32_t reg, uint64_t value, size_t len,
+    bool trace)
 {
+	if (!trace)
+		return;
+	if (write)
+		TRACE3(i915,, register__read,  reg, value, len);
+	else
+		TRACE3(i915,, register__write,  reg, value, len);
 }
 
+DEFINE_TRACE5(i915,, vma__bind,
+    "struct drm_i915_gem_object *"/*obj*/,
+    "struct i915_address_space *"/*vm*/,
+    "uint64_t"/*offset*/,
+    "uint64_t"/*size*/,
+    "uint64_t"/*flags*/);
 static inline void
-trace_i915_vma_bind(struct i915_vma *vma __unused, uint64_t flags __unused)
+trace_i915_vma_bind(struct i915_vma *vma, uint64_t flags)
 {
+	TRACE5(i915,, vma__bind,
+	    vma->obj, vma->vm, vma->node.start, vma->node.size, flags);
 }
 
+DEFINE_TRACE4(i915,, vma__unbind,
+    "struct drm_i915_gem_object *"/*obj*/,
+    "struct i915_address_space *"/*vm*/,
+    "uint64_t"/*offset*/,
+    "uint64_t"/*size*/);
 static inline void
-trace_i915_vma_unbind(struct i915_vma *vma __unused)
+trace_i915_vma_unbind(struct i915_vma *vma)
 {
+	TRACE4(i915,, vma__unbind,
+	    vma->obj, vma->vm, vma->node.start, vma->node.size);
 }
 
+DEFINE_TRACE1(i915,, gpu__freq__change,
+    "int"/*freq*/);
 static inline void
-trace_intel_gpu_freq_change(unsigned int freq __unused)
+trace_intel_gpu_freq_change(int freq)
 {
+	TRACE1(i915,, gpu__freq__change,  freq);
 }
 
+DEFINE_TRACE3(i915,, context__create,
+    "int"/*devno*/,
+    "struct intel_context *"/*ctx*/,
+    "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_context_create(struct intel_context *ctx __unused)
+trace_i915_context_create(struct intel_context *ctx)
 {
+	TRACE3(i915,, context__create,
+	    ctx->i915->dev->primary->index,
+	    ctx,
+	    (ctx->ppgtt ? &ctx->ppgtt->base : NULL));
 }
 
+DEFINE_TRACE3(i915,, context__free,
+    "int"/*devno*/,
+    "struct intel_context *"/*ctx*/,
+    "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_context_free(struct intel_context *ctx __unused)
+trace_i915_context_free(struct intel_context *ctx)
 {
+	TRACE3(i915,, context__free,
+	    ctx->i915->dev->primary->index,
+	    ctx,
+	    (ctx->ppgtt ? &ctx->ppgtt->base : NULL));
 }
 
+DEFINE_TRACE4(i915,, page_directory_entry_alloc,
+    "struct i915_address_space *"/*vm*/,
+    "uint32_t"/*pdpe*/,
+    "uint64_t"/*start*/,
+    "uint64_t"/*pde_shift*/);
 static inline void
-trace_i915_page_directory_entry_alloc(struct i915_address_space *vm __unused,
-    uint32_t pdpe __unused, uint64_t start __unused,
-    uint64_t pde_shift __unused)
+trace_i915_page_directory_entry_alloc(struct i915_address_space *vm,
+    uint32_t pdpe, uint64_t start, uint64_t pde_shift)
 {
+	TRACE4(i915,, page_directory_entry_alloc,  vm, pdpe, start, pde_shift);
 }
 
+DEFINE_TRACE4(i915,, page_directory_pointer_entry_alloc,
+    "struct i915_address_space *"/*vm*/,
+    "uint32_t"/*pml4e*/,
+    "uint64_t"/*start*/,
+    "uint64_t"/*pde_shift*/);
 static inline void
-trace_i915_page_directory_pointer_entry_alloc(
-    struct i915_address_space *vm __unused, uint32_t pml4e __unused,
-    uint64_t start __unused, uint64_t pde_shift __unused)
+trace_i915_page_directory_pointer_entry_alloc(struct i915_address_space *vm,
+    uint32_t pml4e, uint64_t start, uint64_t pde_shift)
 {
+	TRACE4(i915,, page_directory_pointer_entry_alloc,
+	    vm, pml4e, start, pde_shift);
 }
 
+DEFINE_TRACE4(i915,, page_table_entry_alloc,
+    "struct i915_address_space *"/*vm*/,
+    "uint32_t"/*pde*/,
+    "uint64_t"/*start*/,
+    "uint64_t"/*pde_shift*/);
 static inline void
-trace_i915_page_table_entry_alloc(struct i915_address_space *vm __unused,
-    uint32_t pde __unused, uint64_t start __unused,
-    uint64_t pde_shift __unused)
+trace_i915_page_table_entry_alloc(struct i915_address_space *vm, uint32_t pde,
+    uint64_t start, uint64_t pde_shift)
 {
+	TRACE4(i915,, page_table_entry_alloc,  vm, pde, start, pde_shift);
 }
 
+DEFINE_TRACE6(i915,, page_table_entry_map,
+    "struct i915_address_space *"/*vm*/,
+    "uint32_t"/*pde*/,
+    "struct i915_page_table *"/*pt*/,
+    "uint32_t"/*first*/,
+    "uint32_t"/*count*/,
+    "uint32_t"/*bits*/);
 static inline void
-trace_i915_page_table_entry_map(struct i915_address_space *vm __unused,
-    uint32_t pde __unused, struct i915_page_table *pt __unused,
-    uint32_t first __unused, uint32_t count __unused, uint32_t bits __unused)
+trace_i915_page_table_entry_map(struct i915_address_space *vm, uint32_t pde,
+    struct i915_page_table *pt, uint32_t first, uint32_t count, uint32_t bits)
 {
+	TRACE6(i915,, page_table_entry_map,  vm, pde, pt, first, count, bits);
 }
 
+DEFINE_TRACE2(i915,, ppgtt__create,
+    "int"/*devno*/,
+    "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_ppgtt_create(struct i915_address_space *vm __unused)
+trace_i915_ppgtt_create(struct i915_address_space *vm)
 {
+	TRACE2(i915,, ppgtt__create,  vm->dev->primary->index, vm);
 }
 
+DEFINE_TRACE2(i915,, ppgtt__release,
+    "int"/*devno*/,
+    "struct i915_address_space *"/*vm*/);
 static inline void
-trace_i915_ppgtt_release(struct i915_address_space *vm __unused)
+trace_i915_ppgtt_release(struct i915_address_space *vm)
 {
+	TRACE2(i915,, ppgtt__release,  vm->dev->primary->index, vm);
 }
 
-#define	VM_TO_TRACE_NAME(vm)	""
+#define	VM_TO_TRACE_NAME(vm)	(i915_is_ggtt(vm) ? "G" : "P")
 
+DEFINE_TRACE4(i915,, va__alloc,
+    "struct i915_address_space *"/*vm*/,
+    "uint64_t"/*start*/,
+    "uint64_t"/*end*/,
+    "const char *"/*name*/);
 static inline void
-trace_i915_va_alloc(struct i915_address_space *vm __unused,
-    uint64_t start __unused, uint64_t length __unused,
-    const char *name __unused)
+trace_i915_va_alloc(struct i915_address_space *vm, uint64_t start,
+    uint64_t length, const char *name)
 {
+	/* XXX Why start/end upstream?  */
+	TRACE4(i915,, va__alloc,  vm, start, start + length - 1, name);
 }
 
+DEFINE_TRACE3(i915,, gem__shrink,
+    "int"/*devno*/,
+    "unsigned long"/*target*/,
+    "unsigned"/*flags*/);
 static inline void
 trace_i915_gem_shrink(struct drm_i915_private *dev_priv, unsigned long target,
-    unsigned flagss)
+    unsigned flags)
 {
+	TRACE3(i915,, gem__shrink,
+	    dev_priv->dev->primary->index, target, flags);
 }
 
+DEFINE_TRACE5(i915,, pipe__update__start,
+    "enum i915_pipe"/*pipe*/,
+    "uint32_t"/*frame*/,
+    "int"/*scanline*/,
+    "uint32_t"/*min*/,
+    "uint32_t"/*max*/);
 static inline void
 trace_i915_pipe_update_start(struct intel_crtc *crtc)
 {
+	TRACE5(i915,, pipe__update__start,
+	    crtc->pipe,
+	    crtc->base.dev->driver->get_vblank_counter(crtc->base.dev,
+		crtc->pipe),
+	    intel_get_crtc_scanline(crtc),
+	    crtc->debug.min_vbl,
+	    crtc->debug.max_vbl);
 }
 
+DEFINE_TRACE5(i915,, pipe__update__vblank__evaded,
+    "enum i915_pipe"/*pipe*/,
+    "uint32_t"/*frame*/,
+    "int"/*scanline*/,
+    "uint32_t"/*min*/,
+    "uint32_t"/*max*/);
 static inline void
 trace_i915_pipe_update_vblank_evaded(struct intel_crtc *crtc)
 {
-}
-
-static inline void
-trace_i915_pipe_update_end(struct intel_crtc *crtc, uint32_t end_vbl_count,
-    int scanline_end)
-{
-}
-
-static inline void
-trace_switch_mm(struct intel_engine_cs *ring __unused,
-    struct intel_context *to __unused)
-{
+	TRACE5(i915,, pipe__update__vblank__evaded,
+	    crtc->pipe,
+	    crtc->debug.start_vbl_count,
+	    crtc->debug.scanline_start,
+	    crtc->debug.min_vbl,
+	    crtc->debug.max_vbl);
+}
+
+DEFINE_TRACE3(i915,, pipe__update__end,
+    "enum i915_pipe"/*pipe*/,
+    "uint32_t"/*frame*/,
+    "int"/*scanline*/);
+static inline void
+trace_i915_pipe_update_end(struct intel_crtc *crtc, uint32_t frame,
+    int scanline)
+{
+	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