]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/xe/uapi: Rename xe perf layer as xe observation layer
authorAshutosh Dixit <ashutosh.dixit@intel.com>
Wed, 3 Jul 2024 16:48:01 +0000 (09:48 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 11 Jul 2024 13:54:24 +0000 (09:54 -0400)
In Xe, the perf layer allows capture of HW counter streams. These HW
counters are generally performance related but don't have to be necessarily
so. Also, the name "perf" is a carryover from i915 and is not preferred.

Here we propose the name "observation" for this common layer which allows
capture of different types of these counter streams.

v2: Rename observability layer to observation layer (Lucas/Rodrigo)
v3: Rename sysctl file to "observation_paranoid" (Jose)

Fixes: 52c2e956dceb ("drm/xe/perf/uapi: "Perf" layer to support multiple perf counter stream types")
Fixes: fe8929bdf835 ("drm/xe/perf/uapi: Add perf_stream_paranoid sysctl")
Acked-by: Lucas De Marchi <lucas.demarchi@intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Acked-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240703164801.2561423-1-ashutosh.dixit@intel.com
(cherry picked from commit 8169b2097d88d99d7e4a72e20e4b549efe9eb8d7)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/Makefile
drivers/gpu/drm/xe/xe_device.c
drivers/gpu/drm/xe/xe_device_types.h
drivers/gpu/drm/xe/xe_gt_types.h
drivers/gpu/drm/xe/xe_module.c
drivers/gpu/drm/xe/xe_oa.c
drivers/gpu/drm/xe/xe_observation.c [new file with mode: 0644]
drivers/gpu/drm/xe/xe_observation.h [new file with mode: 0644]
drivers/gpu/drm/xe/xe_perf.c [deleted file]
drivers/gpu/drm/xe/xe_perf.h [deleted file]
include/uapi/drm/xe_drm.h

index b1e03bfe4a68b6ed7b57312966b7a3d602e05793..628c245c4822ebff7494e4764c93556eecf6cd8e 100644 (file)
@@ -96,10 +96,10 @@ xe-y += xe_bb.o \
        xe_mocs.o \
        xe_module.o \
        xe_oa.o \
+       xe_observation.o \
        xe_pat.o \
        xe_pci.o \
        xe_pcode.o \
-       xe_perf.o \
        xe_pm.o \
        xe_preempt_fence.o \
        xe_pt.o \
index cfda7cb5df2cea3104082603b88fc02327065373..03492fbcb8fbf1aef6ad874b7899100530e60ed6 100644 (file)
@@ -42,9 +42,9 @@
 #include "xe_memirq.h"
 #include "xe_mmio.h"
 #include "xe_module.h"
+#include "xe_observation.h"
 #include "xe_pat.h"
 #include "xe_pcode.h"
-#include "xe_perf.h"
 #include "xe_pm.h"
 #include "xe_query.h"
 #include "xe_sriov.h"
@@ -142,7 +142,7 @@ static const struct drm_ioctl_desc xe_ioctls[] = {
                          DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(XE_WAIT_USER_FENCE, xe_wait_user_fence_ioctl,
                          DRM_RENDER_ALLOW),
-       DRM_IOCTL_DEF_DRV(XE_PERF, xe_perf_ioctl, DRM_RENDER_ALLOW),
+       DRM_IOCTL_DEF_DRV(XE_OBSERVATION, xe_observation_ioctl, DRM_RENDER_ALLOW),
 };
 
 static long xe_drm_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
index c37be471d11c8f365efe8c4957dc7954bc8afeda..3bca6d344744ac604bb4e50a07fb7ee31c40dbbe 100644 (file)
@@ -463,7 +463,7 @@ struct xe_device {
        /** @heci_gsc: graphics security controller */
        struct xe_heci_gsc heci_gsc;
 
-       /** @oa: oa perf counter subsystem */
+       /** @oa: oa observation subsystem */
        struct xe_oa oa;
 
        /** @needs_flr_on_fini: requests function-reset on fini */
index 24bb95de920f3419bb9ff4b6a7956369cbd15e79..6b5e0b45efb0c929218f988146983630c252fbc9 100644 (file)
@@ -389,7 +389,7 @@ struct xe_gt {
                u8 instances_per_class[XE_ENGINE_CLASS_MAX];
        } user_engines;
 
-       /** @oa: oa perf counter subsystem per gt info */
+       /** @oa: oa observation subsystem per gt info */
        struct xe_oa_gt oa;
 };
 
index 893858a2eea0f40fb34ba3bb64c768f3ff6a8272..499540add465a459db44840b115ff36334c31459 100644 (file)
@@ -11,7 +11,7 @@
 #include "xe_drv.h"
 #include "xe_hw_fence.h"
 #include "xe_pci.h"
-#include "xe_perf.h"
+#include "xe_observation.h"
 #include "xe_sched_job.h"
 
 struct xe_modparam xe_modparam = {
@@ -80,8 +80,8 @@ static const struct init_funcs init_funcs[] = {
                .exit = xe_unregister_pci_driver,
        },
        {
-               .init = xe_perf_sysctl_register,
-               .exit = xe_perf_sysctl_unregister,
+               .init = xe_observation_sysctl_register,
+               .exit = xe_observation_sysctl_unregister,
        },
 };
 
index 4188516a7816d76f5f310cced0a59caf0f25a377..6d69f751bf78d28907be5b3a0b812f4e44e8e3c9 100644 (file)
@@ -32,7 +32,7 @@
 #include "xe_macros.h"
 #include "xe_mmio.h"
 #include "xe_oa.h"
-#include "xe_perf.h"
+#include "xe_observation.h"
 #include "xe_pm.h"
 #include "xe_sched_job.h"
 #include "xe_sriov.h"
@@ -481,7 +481,7 @@ static int __xe_oa_read(struct xe_oa_stream *stream, char __user *buf,
                                          OASTATUS_RELEVANT_BITS, 0);
        /*
         * Signal to userspace that there is non-zero OA status to read via
-        * @DRM_XE_PERF_IOCTL_STATUS perf fd ioctl
+        * @DRM_XE_OBSERVATION_IOCTL_STATUS observation stream fd ioctl
         */
        if (stream->oa_status & OASTATUS_RELEVANT_BITS)
                return -EIO;
@@ -1158,15 +1158,15 @@ static long xe_oa_ioctl_locked(struct xe_oa_stream *stream,
                               unsigned long arg)
 {
        switch (cmd) {
-       case DRM_XE_PERF_IOCTL_ENABLE:
+       case DRM_XE_OBSERVATION_IOCTL_ENABLE:
                return xe_oa_enable_locked(stream);
-       case DRM_XE_PERF_IOCTL_DISABLE:
+       case DRM_XE_OBSERVATION_IOCTL_DISABLE:
                return xe_oa_disable_locked(stream);
-       case DRM_XE_PERF_IOCTL_CONFIG:
+       case DRM_XE_OBSERVATION_IOCTL_CONFIG:
                return xe_oa_config_locked(stream, arg);
-       case DRM_XE_PERF_IOCTL_STATUS:
+       case DRM_XE_OBSERVATION_IOCTL_STATUS:
                return xe_oa_status_locked(stream, arg);
-       case DRM_XE_PERF_IOCTL_INFO:
+       case DRM_XE_OBSERVATION_IOCTL_INFO:
                return xe_oa_info_locked(stream, arg);
        }
 
@@ -1209,7 +1209,7 @@ static int xe_oa_release(struct inode *inode, struct file *file)
        xe_oa_destroy_locked(stream);
        mutex_unlock(&gt->oa.gt_lock);
 
-       /* Release the reference the perf stream kept on the driver */
+       /* Release the reference the OA stream kept on the driver */
        drm_dev_put(&gt_to_xe(gt)->drm);
 
        return 0;
@@ -1222,7 +1222,7 @@ static int xe_oa_mmap(struct file *file, struct vm_area_struct *vma)
        unsigned long start = vma->vm_start;
        int i, ret;
 
-       if (xe_perf_stream_paranoid && !perfmon_capable()) {
+       if (xe_observation_paranoid && !perfmon_capable()) {
                drm_dbg(&stream->oa->xe->drm, "Insufficient privilege to map OA buffer\n");
                return -EACCES;
        }
@@ -1789,8 +1789,8 @@ static int xe_oa_user_extensions(struct xe_oa *oa, u64 extension, int ext_number
  * @file: @drm_file
  *
  * The functions opens an OA stream. An OA stream, opened with specified
- * properties, enables perf counter samples to be collected, either
- * periodically (time based sampling), or on request (using perf queries)
+ * properties, enables OA counter samples to be collected, either
+ * periodically (time based sampling), or on request (using OA queries)
  */
 int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *file)
 {
@@ -1836,8 +1836,8 @@ int xe_oa_stream_open_ioctl(struct drm_device *dev, u64 data, struct drm_file *f
                privileged_op = true;
        }
 
-       if (privileged_op && xe_perf_stream_paranoid && !perfmon_capable()) {
-               drm_dbg(&oa->xe->drm, "Insufficient privileges to open xe perf stream\n");
+       if (privileged_op && xe_observation_paranoid && !perfmon_capable()) {
+               drm_dbg(&oa->xe->drm, "Insufficient privileges to open xe OA stream\n");
                ret = -EACCES;
                goto err_exec_q;
        }
@@ -2097,7 +2097,7 @@ int xe_oa_add_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *fi
                return -ENODEV;
        }
 
-       if (xe_perf_stream_paranoid && !perfmon_capable()) {
+       if (xe_observation_paranoid && !perfmon_capable()) {
                drm_dbg(&oa->xe->drm, "Insufficient privileges to add xe OA config\n");
                return -EACCES;
        }
@@ -2181,7 +2181,7 @@ reg_err:
 /**
  * xe_oa_remove_config_ioctl - Removes one OA config
  * @dev: @drm_device
- * @data: pointer to struct @drm_xe_perf_param
+ * @data: pointer to struct @drm_xe_observation_param
  * @file: @drm_file
  */
 int xe_oa_remove_config_ioctl(struct drm_device *dev, u64 data, struct drm_file *file)
@@ -2197,7 +2197,7 @@ int xe_oa_remove_config_ioctl(struct drm_device *dev, u64 data, struct drm_file
                return -ENODEV;
        }
 
-       if (xe_perf_stream_paranoid && !perfmon_capable()) {
+       if (xe_observation_paranoid && !perfmon_capable()) {
                drm_dbg(&oa->xe->drm, "Insufficient privileges to remove xe OA config\n");
                return -EACCES;
        }
@@ -2381,7 +2381,7 @@ static int xe_oa_init_gt(struct xe_gt *gt)
 
        /*
         * Fused off engines can result in oa_unit's with num_engines == 0. These units
-        * will appear in OA unit query, but no perf streams can be opened on them.
+        * will appear in OA unit query, but no OA streams can be opened on them.
         */
        gt->oa.num_oa_units = num_oa_units;
        gt->oa.oa_unit = u;
diff --git a/drivers/gpu/drm/xe/xe_observation.c b/drivers/gpu/drm/xe/xe_observation.c
new file mode 100644 (file)
index 0000000..fcb584b
--- /dev/null
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2023-2024 Intel Corporation
+ */
+
+#include <linux/errno.h>
+#include <linux/sysctl.h>
+
+#include <drm/xe_drm.h>
+
+#include "xe_oa.h"
+#include "xe_observation.h"
+
+u32 xe_observation_paranoid = true;
+static struct ctl_table_header *sysctl_header;
+
+static int xe_oa_ioctl(struct drm_device *dev, struct drm_xe_observation_param *arg,
+                      struct drm_file *file)
+{
+       switch (arg->observation_op) {
+       case DRM_XE_OBSERVATION_OP_STREAM_OPEN:
+               return xe_oa_stream_open_ioctl(dev, arg->param, file);
+       case DRM_XE_OBSERVATION_OP_ADD_CONFIG:
+               return xe_oa_add_config_ioctl(dev, arg->param, file);
+       case DRM_XE_OBSERVATION_OP_REMOVE_CONFIG:
+               return xe_oa_remove_config_ioctl(dev, arg->param, file);
+       default:
+               return -EINVAL;
+       }
+}
+
+/**
+ * xe_observation_ioctl - The top level observation layer ioctl
+ * @dev: @drm_device
+ * @data: pointer to struct @drm_xe_observation_param
+ * @file: @drm_file
+ *
+ * The function is called for different observation streams types and
+ * allows execution of different operations supported by those stream
+ * types.
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int xe_observation_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
+{
+       struct drm_xe_observation_param *arg = data;
+
+       if (arg->extensions)
+               return -EINVAL;
+
+       switch (arg->observation_type) {
+       case DRM_XE_OBSERVATION_TYPE_OA:
+               return xe_oa_ioctl(dev, arg, file);
+       default:
+               return -EINVAL;
+       }
+}
+
+static struct ctl_table observation_ctl_table[] = {
+       {
+        .procname = "observation_paranoid",
+        .data = &xe_observation_paranoid,
+        .maxlen = sizeof(xe_observation_paranoid),
+        .mode = 0644,
+        .proc_handler = proc_dointvec_minmax,
+        .extra1 = SYSCTL_ZERO,
+        .extra2 = SYSCTL_ONE,
+        },
+       {}
+};
+
+/**
+ * xe_observation_sysctl_register - Register xe_observation_paranoid sysctl
+ *
+ * Normally only superuser/root can access observation stream
+ * data. However, superuser can set xe_observation_paranoid sysctl to 0 to
+ * allow non-privileged users to also access observation data.
+ *
+ * Return: always returns 0
+ */
+int xe_observation_sysctl_register(void)
+{
+       sysctl_header = register_sysctl("dev/xe", observation_ctl_table);
+       return 0;
+}
+
+/**
+ * xe_observation_sysctl_unregister - Unregister xe_observation_paranoid sysctl
+ */
+void xe_observation_sysctl_unregister(void)
+{
+       unregister_sysctl_table(sysctl_header);
+}
diff --git a/drivers/gpu/drm/xe/xe_observation.h b/drivers/gpu/drm/xe/xe_observation.h
new file mode 100644 (file)
index 0000000..1781699
--- /dev/null
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2023-2024 Intel Corporation
+ */
+
+#ifndef _XE_OBSERVATION_H_
+#define _XE_OBSERVATION_H_
+
+#include <linux/types.h>
+
+struct drm_device;
+struct drm_file;
+
+extern u32 xe_observation_paranoid;
+
+int xe_observation_ioctl(struct drm_device *dev, void *data, struct drm_file *file);
+int xe_observation_sysctl_register(void);
+void xe_observation_sysctl_unregister(void);
+
+#endif
diff --git a/drivers/gpu/drm/xe/xe_perf.c b/drivers/gpu/drm/xe/xe_perf.c
deleted file mode 100644 (file)
index d6cd74c..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// SPDX-License-Identifier: MIT
-/*
- * Copyright © 2023-2024 Intel Corporation
- */
-
-#include <linux/errno.h>
-#include <linux/sysctl.h>
-
-#include <drm/xe_drm.h>
-
-#include "xe_oa.h"
-#include "xe_perf.h"
-
-u32 xe_perf_stream_paranoid = true;
-static struct ctl_table_header *sysctl_header;
-
-static int xe_oa_ioctl(struct drm_device *dev, struct drm_xe_perf_param *arg,
-                      struct drm_file *file)
-{
-       switch (arg->perf_op) {
-       case DRM_XE_PERF_OP_STREAM_OPEN:
-               return xe_oa_stream_open_ioctl(dev, arg->param, file);
-       case DRM_XE_PERF_OP_ADD_CONFIG:
-               return xe_oa_add_config_ioctl(dev, arg->param, file);
-       case DRM_XE_PERF_OP_REMOVE_CONFIG:
-               return xe_oa_remove_config_ioctl(dev, arg->param, file);
-       default:
-               return -EINVAL;
-       }
-}
-
-/**
- * xe_perf_ioctl - The top level perf layer ioctl
- * @dev: @drm_device
- * @data: pointer to struct @drm_xe_perf_param
- * @file: @drm_file
- *
- * The function is called for different perf streams types and allows execution
- * of different operations supported by those perf stream types.
- *
- * Return: 0 on success or a negative error code on failure.
- */
-int xe_perf_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
-{
-       struct drm_xe_perf_param *arg = data;
-
-       if (arg->extensions)
-               return -EINVAL;
-
-       switch (arg->perf_type) {
-       case DRM_XE_PERF_TYPE_OA:
-               return xe_oa_ioctl(dev, arg, file);
-       default:
-               return -EINVAL;
-       }
-}
-
-static struct ctl_table perf_ctl_table[] = {
-       {
-        .procname = "perf_stream_paranoid",
-        .data = &xe_perf_stream_paranoid,
-        .maxlen = sizeof(xe_perf_stream_paranoid),
-        .mode = 0644,
-        .proc_handler = proc_dointvec_minmax,
-        .extra1 = SYSCTL_ZERO,
-        .extra2 = SYSCTL_ONE,
-        },
-       {}
-};
-
-/**
- * xe_perf_sysctl_register - Register "perf_stream_paranoid" sysctl
- *
- * Normally only superuser/root can access perf counter data. However,
- * superuser can set perf_stream_paranoid sysctl to 0 to allow non-privileged
- * users to also access perf data.
- *
- * Return: always returns 0
- */
-int xe_perf_sysctl_register(void)
-{
-       sysctl_header = register_sysctl("dev/xe", perf_ctl_table);
-       return 0;
-}
-
-/**
- * xe_perf_sysctl_unregister - Unregister "perf_stream_paranoid" sysctl
- */
-void xe_perf_sysctl_unregister(void)
-{
-       unregister_sysctl_table(sysctl_header);
-}
diff --git a/drivers/gpu/drm/xe/xe_perf.h b/drivers/gpu/drm/xe/xe_perf.h
deleted file mode 100644 (file)
index 53a8377..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2023-2024 Intel Corporation
- */
-
-#ifndef _XE_PERF_H_
-#define _XE_PERF_H_
-
-#include <linux/types.h>
-
-struct drm_device;
-struct drm_file;
-
-extern u32 xe_perf_stream_paranoid;
-
-int xe_perf_ioctl(struct drm_device *dev, void *data, struct drm_file *file);
-int xe_perf_sysctl_register(void);
-void xe_perf_sysctl_unregister(void);
-
-#endif
index 12eaa8532b5c3d42a02bb4704dde050182c09f14..33544ef78d3ea60a49c779ad5373e06f19aec570 100644 (file)
@@ -80,7 +80,7 @@ extern "C" {
  *  - &DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY
  *  - &DRM_IOCTL_XE_EXEC
  *  - &DRM_IOCTL_XE_WAIT_USER_FENCE
- *  - &DRM_IOCTL_XE_PERF
+ *  - &DRM_IOCTL_XE_OBSERVATION
  */
 
 /*
@@ -101,7 +101,7 @@ extern "C" {
 #define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x08
 #define DRM_XE_EXEC                    0x09
 #define DRM_XE_WAIT_USER_FENCE         0x0a
-#define DRM_XE_PERF                    0x0b
+#define DRM_XE_OBSERVATION             0x0b
 
 /* Must be kept compact -- no holes */
 
@@ -116,7 +116,7 @@ extern "C" {
 #define DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY   DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_GET_PROPERTY, struct drm_xe_exec_queue_get_property)
 #define DRM_IOCTL_XE_EXEC                      DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec)
 #define DRM_IOCTL_XE_WAIT_USER_FENCE           DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
-#define DRM_IOCTL_XE_PERF                      DRM_IOW(DRM_COMMAND_BASE + DRM_XE_PERF, struct drm_xe_perf_param)
+#define DRM_IOCTL_XE_OBSERVATION               DRM_IOW(DRM_COMMAND_BASE + DRM_XE_OBSERVATION, struct drm_xe_observation_param)
 
 /**
  * DOC: Xe IOCTL Extensions
@@ -1376,66 +1376,67 @@ struct drm_xe_wait_user_fence {
 };
 
 /**
- * enum drm_xe_perf_type - Perf stream types
+ * enum drm_xe_observation_type - Observation stream types
  */
-enum drm_xe_perf_type {
-       /** @DRM_XE_PERF_TYPE_OA: OA perf stream type */
-       DRM_XE_PERF_TYPE_OA,
+enum drm_xe_observation_type {
+       /** @DRM_XE_OBSERVATION_TYPE_OA: OA observation stream type */
+       DRM_XE_OBSERVATION_TYPE_OA,
 };
 
 /**
- * enum drm_xe_perf_op - Perf stream ops
+ * enum drm_xe_observation_op - Observation stream ops
  */
-enum drm_xe_perf_op {
-       /** @DRM_XE_PERF_OP_STREAM_OPEN: Open a perf counter stream */
-       DRM_XE_PERF_OP_STREAM_OPEN,
+enum drm_xe_observation_op {
+       /** @DRM_XE_OBSERVATION_OP_STREAM_OPEN: Open an observation stream */
+       DRM_XE_OBSERVATION_OP_STREAM_OPEN,
 
-       /** @DRM_XE_PERF_OP_ADD_CONFIG: Add perf stream config */
-       DRM_XE_PERF_OP_ADD_CONFIG,
+       /** @DRM_XE_OBSERVATION_OP_ADD_CONFIG: Add observation stream config */
+       DRM_XE_OBSERVATION_OP_ADD_CONFIG,
 
-       /** @DRM_XE_PERF_OP_REMOVE_CONFIG: Remove perf stream config */
-       DRM_XE_PERF_OP_REMOVE_CONFIG,
+       /** @DRM_XE_OBSERVATION_OP_REMOVE_CONFIG: Remove observation stream config */
+       DRM_XE_OBSERVATION_OP_REMOVE_CONFIG,
 };
 
 /**
- * struct drm_xe_perf_param - Input of &DRM_XE_PERF
+ * struct drm_xe_observation_param - Input of &DRM_XE_OBSERVATION
  *
- * The perf layer enables multiplexing perf counter streams of multiple
- * types. The actual params for a particular stream operation are supplied
- * via the @param pointer (use __copy_from_user to get these params).
+ * The observation layer enables multiplexing observation streams of
+ * multiple types. The actual params for a particular stream operation are
+ * supplied via the @param pointer (use __copy_from_user to get these
+ * params).
  */
-struct drm_xe_perf_param {
+struct drm_xe_observation_param {
        /** @extensions: Pointer to the first extension struct, if any */
        __u64 extensions;
-       /** @perf_type: Perf stream type, of enum @drm_xe_perf_type */
-       __u64 perf_type;
-       /** @perf_op: Perf op, of enum @drm_xe_perf_op */
-       __u64 perf_op;
+       /** @observation_type: observation stream type, of enum @drm_xe_observation_type */
+       __u64 observation_type;
+       /** @observation_op: observation stream op, of enum @drm_xe_observation_op */
+       __u64 observation_op;
        /** @param: Pointer to actual stream params */
        __u64 param;
 };
 
 /**
- * enum drm_xe_perf_ioctls - Perf fd ioctl's
+ * enum drm_xe_observation_ioctls - Observation stream fd ioctl's
  *
- * Information exchanged between userspace and kernel for perf fd ioctl's
- * is stream type specific
+ * Information exchanged between userspace and kernel for observation fd
+ * ioctl's is stream type specific
  */
-enum drm_xe_perf_ioctls {
-       /** @DRM_XE_PERF_IOCTL_ENABLE: Enable data capture for a stream */
-       DRM_XE_PERF_IOCTL_ENABLE = _IO('i', 0x0),
+enum drm_xe_observation_ioctls {
+       /** @DRM_XE_OBSERVATION_IOCTL_ENABLE: Enable data capture for an observation stream */
+       DRM_XE_OBSERVATION_IOCTL_ENABLE = _IO('i', 0x0),
 
-       /** @DRM_XE_PERF_IOCTL_DISABLE: Disable data capture for a stream */
-       DRM_XE_PERF_IOCTL_DISABLE = _IO('i', 0x1),
+       /** @DRM_XE_OBSERVATION_IOCTL_DISABLE: Disable data capture for a observation stream */
+       DRM_XE_OBSERVATION_IOCTL_DISABLE = _IO('i', 0x1),
 
-       /** @DRM_XE_PERF_IOCTL_CONFIG: Change stream configuration */
-       DRM_XE_PERF_IOCTL_CONFIG = _IO('i', 0x2),
+       /** @DRM_XE_OBSERVATION_IOCTL_CONFIG: Change observation stream configuration */
+       DRM_XE_OBSERVATION_IOCTL_CONFIG = _IO('i', 0x2),
 
-       /** @DRM_XE_PERF_IOCTL_STATUS: Return stream status */
-       DRM_XE_PERF_IOCTL_STATUS = _IO('i', 0x3),
+       /** @DRM_XE_OBSERVATION_IOCTL_STATUS: Return observation stream status */
+       DRM_XE_OBSERVATION_IOCTL_STATUS = _IO('i', 0x3),
 
-       /** @DRM_XE_PERF_IOCTL_INFO: Return stream info */
-       DRM_XE_PERF_IOCTL_INFO = _IO('i', 0x4),
+       /** @DRM_XE_OBSERVATION_IOCTL_INFO: Return observation stream info */
+       DRM_XE_OBSERVATION_IOCTL_INFO = _IO('i', 0x4),
 };
 
 /**
@@ -1546,12 +1547,12 @@ enum drm_xe_oa_format_type {
  * Stream params are specified as a chain of @drm_xe_ext_set_property
  * struct's, with @property values from enum @drm_xe_oa_property_id and
  * @drm_xe_user_extension base.name set to @DRM_XE_OA_EXTENSION_SET_PROPERTY.
- * @param field in struct @drm_xe_perf_param points to the first
+ * @param field in struct @drm_xe_observation_param points to the first
  * @drm_xe_ext_set_property struct.
  *
- * Exactly the same mechanism is also used for stream reconfiguration using
- * the @DRM_XE_PERF_IOCTL_CONFIG perf fd ioctl, though only a subset of
- * properties below can be specified for stream reconfiguration.
+ * Exactly the same mechanism is also used for stream reconfiguration using the
+ * @DRM_XE_OBSERVATION_IOCTL_CONFIG observation stream fd ioctl, though only a
+ * subset of properties below can be specified for stream reconfiguration.
  */
 enum drm_xe_oa_property_id {
 #define DRM_XE_OA_EXTENSION_SET_PROPERTY       0
@@ -1571,11 +1572,11 @@ enum drm_xe_oa_property_id {
 
        /**
         * @DRM_XE_OA_PROPERTY_OA_METRIC_SET: OA metrics defining contents of OA
-        * reports, previously added via @DRM_XE_PERF_OP_ADD_CONFIG.
+        * reports, previously added via @DRM_XE_OBSERVATION_OP_ADD_CONFIG.
         */
        DRM_XE_OA_PROPERTY_OA_METRIC_SET,
 
-       /** @DRM_XE_OA_PROPERTY_OA_FORMAT: Perf counter report format */
+       /** @DRM_XE_OA_PROPERTY_OA_FORMAT: OA counter report format */
        DRM_XE_OA_PROPERTY_OA_FORMAT,
        /*
         * OA_FORMAT's are specified the same way as in PRM/Bspec 52198/60942,
@@ -1596,13 +1597,13 @@ enum drm_xe_oa_property_id {
 
        /**
         * @DRM_XE_OA_PROPERTY_OA_DISABLED: A value of 1 will open the OA
-        * stream in a DISABLED state (see @DRM_XE_PERF_IOCTL_ENABLE).
+        * stream in a DISABLED state (see @DRM_XE_OBSERVATION_IOCTL_ENABLE).
         */
        DRM_XE_OA_PROPERTY_OA_DISABLED,
 
        /**
         * @DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID: Open the stream for a specific
-        * @exec_queue_id. Perf queries can be executed on this exec queue.
+        * @exec_queue_id. OA queries can be executed on this exec queue.
         */
        DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID,
 
@@ -1622,7 +1623,7 @@ enum drm_xe_oa_property_id {
 /**
  * struct drm_xe_oa_config - OA metric configuration
  *
- * Multiple OA configs can be added using @DRM_XE_PERF_OP_ADD_CONFIG. A
+ * Multiple OA configs can be added using @DRM_XE_OBSERVATION_OP_ADD_CONFIG. A
  * particular config can be specified when opening an OA stream using
  * @DRM_XE_OA_PROPERTY_OA_METRIC_SET property.
  */
@@ -1645,8 +1646,9 @@ struct drm_xe_oa_config {
 
 /**
  * struct drm_xe_oa_stream_status - OA stream status returned from
- * @DRM_XE_PERF_IOCTL_STATUS perf fd ioctl. Userspace can call the ioctl to
- * query stream status in response to EIO errno from perf fd read().
+ * @DRM_XE_OBSERVATION_IOCTL_STATUS observation stream fd ioctl. Userspace can
+ * call the ioctl to query stream status in response to EIO errno from
+ * observation fd read().
  */
 struct drm_xe_oa_stream_status {
        /** @extensions: Pointer to the first extension struct, if any */
@@ -1665,7 +1667,7 @@ struct drm_xe_oa_stream_status {
 
 /**
  * struct drm_xe_oa_stream_info - OA stream info returned from
- * @DRM_XE_PERF_IOCTL_INFO perf fd ioctl
+ * @DRM_XE_OBSERVATION_IOCTL_INFO observation stream fd ioctl
  */
 struct drm_xe_oa_stream_info {
        /** @extensions: Pointer to the first extension struct, if any */