From: Jeffrey Hugo <quic_jhugo@quicinc.com> To: <airlied@linux.ie>, <daniel@ffwll.ch>, <maarten.lankhorst@linux.intel.com>, <mripard@kernel.org>, <tzimmermann@suse.de> Cc: Jeffrey Hugo <quic_jhugo@quicinc.com>, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, quic_ajitpals@quicinc.com, quic_pkanojiy@quicinc.com, quic_carlv@quicinc.com Subject: [RFC PATCH 12/14] drm/qaic: Add tracepoints Date: Mon, 15 Aug 2022 12:42:34 -0600 [thread overview] Message-ID: <1660588956-24027-13-git-send-email-quic_jhugo@quicinc.com> (raw) In-Reply-To: <1660588956-24027-1-git-send-email-quic_jhugo@quicinc.com> Add QAIC specific tracepoints which can be useful in debugging issues. Change-Id: I8cde015990d5a3482dbba142cf0a4bbb4512cb02 Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com> --- drivers/gpu/drm/qaic/qaic_trace.h | 493 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 493 insertions(+) create mode 100644 drivers/gpu/drm/qaic/qaic_trace.h diff --git a/drivers/gpu/drm/qaic/qaic_trace.h b/drivers/gpu/drm/qaic/qaic_trace.h new file mode 100644 index 0000000..0be824eb --- /dev/null +++ b/drivers/gpu/drm/qaic/qaic_trace.h @@ -0,0 +1,493 @@ +/* SPDX-License-Identifier: GPL-2.0-only + * + * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#if !defined(_TRACE_QAIC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_QAIC_H +#include <linux/tracepoint.h> +#include <uapi/drm/qaic_drm.h> + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM qaic +#define TRACE_INCLUDE_FILE qaic_trace +#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/qaic + +TRACE_EVENT(qaic_ioctl, + TP_PROTO(struct qaic_device *qdev, struct qaic_user *usr, + unsigned int cmd, bool in), + TP_ARGS(qdev, usr, cmd, in), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(unsigned int, user) + __field(unsigned int, cmd) + __field(unsigned int, type) + __field(unsigned int, nr) + __field(unsigned int, size) + __field(unsigned int, dir) + __field(bool, in) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->user = usr->handle; + __entry->cmd = cmd; + __entry->type = _IOC_TYPE(cmd); + __entry->nr = _IOC_NR(cmd); + __entry->size = _IOC_SIZE(cmd); + __entry->dir = _IOC_DIR(cmd); + __entry->in = in; + ), + TP_printk("%s:%s user:%d cmd:0x%x (%c nr=%d len=%d dir=%d)", + __entry->in ? "Entry" : "Exit", __get_str(device), + __entry->user, __entry->cmd, __entry->type, __entry->nr, + __entry->size, __entry->dir) +); + +TRACE_EVENT(qaic_mhi_queue_error, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __field(int, ret) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __entry->ret = ret; + ), + TP_printk("%s %s %d", + __get_str(device), __get_str(msg), __entry->ret) +); + +DECLARE_EVENT_CLASS(qaic_manage_error, + TP_PROTO(struct qaic_device *qdev, struct qaic_user *usr, + const char *msg), + TP_ARGS(qdev, usr, msg), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(unsigned int, user) + __string(msg, msg) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->user = usr->handle; + __assign_str(msg, msg); + ), + TP_printk("%s user:%d %s", + __get_str(device), __entry->user, __get_str(msg)) +); + +DEFINE_EVENT(qaic_manage_error, manage_error, + TP_PROTO(struct qaic_device *qdev, struct qaic_user *usr, + const char *msg), + TP_ARGS(qdev, usr, msg) +); + +DECLARE_EVENT_CLASS(qaic_encdec_error, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + ), + TP_printk("%s %s", __get_str(device), __get_str(msg)) +); + +DEFINE_EVENT(qaic_encdec_error, encode_error, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +DEFINE_EVENT(qaic_encdec_error, decode_error, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +TRACE_EVENT(qaic_control_dbg, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __field(int, ret) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __entry->ret = ret; + ), + TP_printk("%s %s %d", + __get_str(device), __get_str(msg), __entry->ret) +); + +TRACE_EVENT(qaic_encode_passthrough, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_passthrough *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + ), + TP_printk("%s len %u", __get_str(device), __entry->len) +); + +TRACE_EVENT(qaic_encode_dma, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_dma_xfer *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, tag) + __field(__u32, count) + __field(__u64, addr) + __field(__u64, size) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + __entry->tag = in_trans->tag; + __entry->count = in_trans->count; + __entry->addr = in_trans->addr; + __entry->size = in_trans->size; + ), + TP_printk("%s len %u tag %u count %u address 0x%llx size %llu", + __get_str(device), __entry->len, __entry->tag, __entry->count, + __entry->addr, __entry->size) +); + +TRACE_EVENT(qaic_encode_activate, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_activate_to_dev *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, queue_size) + __field(__u32, eventfd) + __field(__u32, options) + __field(__u32, pad) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + __entry->queue_size = in_trans->queue_size; + __entry->eventfd = in_trans->eventfd; + __entry->options = in_trans->options; + __entry->pad = in_trans->pad; + ), + TP_printk("%s len %u queue_size %u eventfd %u options %u pad %u", + __get_str(device), __entry->len, __entry->queue_size, + __entry->eventfd, __entry->options, __entry->pad) +); + +TRACE_EVENT(qaic_encode_deactivate, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_deactivate *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, dbc_id) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + __entry->dbc_id = in_trans->dbc_id; + ), + TP_printk("%s len %u dbc_id %u", + __get_str(device), __entry->len, __entry->dbc_id) +); + +TRACE_EVENT(qaic_encode_status, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_status_to_dev *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + ), + TP_printk("%s len %u", __get_str(device), __entry->len) +); + +TRACE_EVENT(qaic_decode_passthrough, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_passthrough *out_trans), + TP_ARGS(qdev, out_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = out_trans->hdr.len; + ), + TP_printk("%s len %u", __get_str(device), __entry->len) +); + +TRACE_EVENT(qaic_decode_activate, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_activate_from_dev *out_trans), + TP_ARGS(qdev, out_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, status) + __field(__u32, dbc_id) + __field(__u64, options) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = out_trans->hdr.len; + __entry->status = out_trans->status; + __entry->dbc_id = out_trans->dbc_id; + __entry->options = out_trans->options; + ), + TP_printk("%s len %u status %u dbc_id %u options %llu", + __get_str(device), __entry->len, __entry->status, + __entry->dbc_id, __entry->options) +); + +TRACE_EVENT(qaic_decode_deactivate, + TP_PROTO(struct qaic_device *qdev, u32 dbc_id, u32 status), + TP_ARGS(qdev, dbc_id, status), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(u32, dbc_id) + __field(u32, status) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->dbc_id = dbc_id; + __entry->status = status; + ), + TP_printk("%s dbc_id %u status %u", + __get_str(device), __entry->dbc_id, __entry->status) +); + +TRACE_EVENT(qaic_decode_status, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_status_from_dev *out_trans), + TP_ARGS(qdev, out_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u16, major) + __field(__u16, minor) + __field(__u32, status) + __field(__u64, status_flags) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = out_trans->hdr.len; + __entry->major = out_trans->major; + __entry->minor = out_trans->minor; + __entry->status = out_trans->status; + __entry->status_flags = out_trans->status_flags; + ), + TP_printk("%s len %u major %u minor %u status %u flags 0x%llx", + __get_str(device), __entry->len, __entry->major, __entry->minor, + __entry->status, __entry->status_flags) +); + +DECLARE_EVENT_CLASS(qaic_data_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __field(int, ret) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __entry->ret = ret; + ), + TP_printk("%s %s %d", __get_str(device), __get_str(msg), __entry->ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_mem_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_mmap_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_exec_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_wait_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_stats_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_util_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_attach_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DECLARE_EVENT_CLASS(qaic_data_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __string(msg_var1, msg_var1) + __field(int, ret) + __field(u64, var1) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __assign_str(msg_var1, msg_var1); + __entry->ret = ret; + __entry->var1 = var1; + ), + TP_printk("%s %s Error:%d %s:%llu", + __get_str(device), __get_str(msg), __entry->ret, + __get_str(msg_var1), __entry->var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_mem_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_mmap_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_attach_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_exec_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_wait_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_stats_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DECLARE_EVENT_CLASS(qaic_data_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __string(msg_var1, msg_var1) + __string(msg_var2, msg_var2) + __field(int, ret) + __field(u64, var1) + __field(u64, var2) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __assign_str(msg_var1, msg_var1); + __assign_str(msg_var2, msg_var2); + __entry->ret = ret; + __entry->var1 = var1; + __entry->var2 = var2; + ), + TP_printk("%s %s Error:%d %s:%llu %s:%llu", + __get_str(device), __get_str(msg), __entry->ret, + __get_str(msg_var1), __entry->var1, + __get_str(msg_var2), __entry->var2) +); + +DEFINE_EVENT(qaic_data_err_2, qaic_mem_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2) +); + +DEFINE_EVENT(qaic_data_err_2, qaic_attach_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2) +); + +DEFINE_EVENT(qaic_data_err_2, qaic_exec_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2) +); + +DECLARE_EVENT_CLASS(qaic_ssr, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + ), + TP_printk("%s %s", __get_str(device), __get_str(msg)) +); + +DEFINE_EVENT(qaic_ssr, qaic_ssr_cmd, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +DEFINE_EVENT(qaic_ssr, qaic_ssr_event, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +DEFINE_EVENT(qaic_ssr, qaic_ssr_dump, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +#endif /* _TRACE_QAIC_H */ +#include <trace/define_trace.h> -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Jeffrey Hugo <quic_jhugo@quicinc.com> To: <airlied@linux.ie>, <daniel@ffwll.ch>, <maarten.lankhorst@linux.intel.com>, <mripard@kernel.org>, <tzimmermann@suse.de> Cc: <quic_carlv@quicinc.com>, <quic_ajitpals@quicinc.com>, <quic_pkanojiy@quicinc.com>, <dri-devel@lists.freedesktop.org>, <linux-arm-msm@vger.kernel.org>, <linux-kernel@vger.kernel.org>, Jeffrey Hugo <quic_jhugo@quicinc.com> Subject: [RFC PATCH 12/14] drm/qaic: Add tracepoints Date: Mon, 15 Aug 2022 12:42:34 -0600 [thread overview] Message-ID: <1660588956-24027-13-git-send-email-quic_jhugo@quicinc.com> (raw) In-Reply-To: <1660588956-24027-1-git-send-email-quic_jhugo@quicinc.com> Add QAIC specific tracepoints which can be useful in debugging issues. Change-Id: I8cde015990d5a3482dbba142cf0a4bbb4512cb02 Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com> --- drivers/gpu/drm/qaic/qaic_trace.h | 493 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 493 insertions(+) create mode 100644 drivers/gpu/drm/qaic/qaic_trace.h diff --git a/drivers/gpu/drm/qaic/qaic_trace.h b/drivers/gpu/drm/qaic/qaic_trace.h new file mode 100644 index 0000000..0be824eb --- /dev/null +++ b/drivers/gpu/drm/qaic/qaic_trace.h @@ -0,0 +1,493 @@ +/* SPDX-License-Identifier: GPL-2.0-only + * + * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#if !defined(_TRACE_QAIC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_QAIC_H +#include <linux/tracepoint.h> +#include <uapi/drm/qaic_drm.h> + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM qaic +#define TRACE_INCLUDE_FILE qaic_trace +#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/qaic + +TRACE_EVENT(qaic_ioctl, + TP_PROTO(struct qaic_device *qdev, struct qaic_user *usr, + unsigned int cmd, bool in), + TP_ARGS(qdev, usr, cmd, in), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(unsigned int, user) + __field(unsigned int, cmd) + __field(unsigned int, type) + __field(unsigned int, nr) + __field(unsigned int, size) + __field(unsigned int, dir) + __field(bool, in) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->user = usr->handle; + __entry->cmd = cmd; + __entry->type = _IOC_TYPE(cmd); + __entry->nr = _IOC_NR(cmd); + __entry->size = _IOC_SIZE(cmd); + __entry->dir = _IOC_DIR(cmd); + __entry->in = in; + ), + TP_printk("%s:%s user:%d cmd:0x%x (%c nr=%d len=%d dir=%d)", + __entry->in ? "Entry" : "Exit", __get_str(device), + __entry->user, __entry->cmd, __entry->type, __entry->nr, + __entry->size, __entry->dir) +); + +TRACE_EVENT(qaic_mhi_queue_error, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __field(int, ret) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __entry->ret = ret; + ), + TP_printk("%s %s %d", + __get_str(device), __get_str(msg), __entry->ret) +); + +DECLARE_EVENT_CLASS(qaic_manage_error, + TP_PROTO(struct qaic_device *qdev, struct qaic_user *usr, + const char *msg), + TP_ARGS(qdev, usr, msg), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(unsigned int, user) + __string(msg, msg) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->user = usr->handle; + __assign_str(msg, msg); + ), + TP_printk("%s user:%d %s", + __get_str(device), __entry->user, __get_str(msg)) +); + +DEFINE_EVENT(qaic_manage_error, manage_error, + TP_PROTO(struct qaic_device *qdev, struct qaic_user *usr, + const char *msg), + TP_ARGS(qdev, usr, msg) +); + +DECLARE_EVENT_CLASS(qaic_encdec_error, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + ), + TP_printk("%s %s", __get_str(device), __get_str(msg)) +); + +DEFINE_EVENT(qaic_encdec_error, encode_error, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +DEFINE_EVENT(qaic_encdec_error, decode_error, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +TRACE_EVENT(qaic_control_dbg, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __field(int, ret) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __entry->ret = ret; + ), + TP_printk("%s %s %d", + __get_str(device), __get_str(msg), __entry->ret) +); + +TRACE_EVENT(qaic_encode_passthrough, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_passthrough *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + ), + TP_printk("%s len %u", __get_str(device), __entry->len) +); + +TRACE_EVENT(qaic_encode_dma, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_dma_xfer *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, tag) + __field(__u32, count) + __field(__u64, addr) + __field(__u64, size) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + __entry->tag = in_trans->tag; + __entry->count = in_trans->count; + __entry->addr = in_trans->addr; + __entry->size = in_trans->size; + ), + TP_printk("%s len %u tag %u count %u address 0x%llx size %llu", + __get_str(device), __entry->len, __entry->tag, __entry->count, + __entry->addr, __entry->size) +); + +TRACE_EVENT(qaic_encode_activate, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_activate_to_dev *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, queue_size) + __field(__u32, eventfd) + __field(__u32, options) + __field(__u32, pad) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + __entry->queue_size = in_trans->queue_size; + __entry->eventfd = in_trans->eventfd; + __entry->options = in_trans->options; + __entry->pad = in_trans->pad; + ), + TP_printk("%s len %u queue_size %u eventfd %u options %u pad %u", + __get_str(device), __entry->len, __entry->queue_size, + __entry->eventfd, __entry->options, __entry->pad) +); + +TRACE_EVENT(qaic_encode_deactivate, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_deactivate *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, dbc_id) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + __entry->dbc_id = in_trans->dbc_id; + ), + TP_printk("%s len %u dbc_id %u", + __get_str(device), __entry->len, __entry->dbc_id) +); + +TRACE_EVENT(qaic_encode_status, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_status_to_dev *in_trans), + TP_ARGS(qdev, in_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = in_trans->hdr.len; + ), + TP_printk("%s len %u", __get_str(device), __entry->len) +); + +TRACE_EVENT(qaic_decode_passthrough, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_passthrough *out_trans), + TP_ARGS(qdev, out_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = out_trans->hdr.len; + ), + TP_printk("%s len %u", __get_str(device), __entry->len) +); + +TRACE_EVENT(qaic_decode_activate, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_activate_from_dev *out_trans), + TP_ARGS(qdev, out_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u32, status) + __field(__u32, dbc_id) + __field(__u64, options) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = out_trans->hdr.len; + __entry->status = out_trans->status; + __entry->dbc_id = out_trans->dbc_id; + __entry->options = out_trans->options; + ), + TP_printk("%s len %u status %u dbc_id %u options %llu", + __get_str(device), __entry->len, __entry->status, + __entry->dbc_id, __entry->options) +); + +TRACE_EVENT(qaic_decode_deactivate, + TP_PROTO(struct qaic_device *qdev, u32 dbc_id, u32 status), + TP_ARGS(qdev, dbc_id, status), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(u32, dbc_id) + __field(u32, status) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->dbc_id = dbc_id; + __entry->status = status; + ), + TP_printk("%s dbc_id %u status %u", + __get_str(device), __entry->dbc_id, __entry->status) +); + +TRACE_EVENT(qaic_decode_status, + TP_PROTO(struct qaic_device *qdev, + struct qaic_manage_trans_status_from_dev *out_trans), + TP_ARGS(qdev, out_trans), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __field(__u32, len) + __field(__u16, major) + __field(__u16, minor) + __field(__u32, status) + __field(__u64, status_flags) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __entry->len = out_trans->hdr.len; + __entry->major = out_trans->major; + __entry->minor = out_trans->minor; + __entry->status = out_trans->status; + __entry->status_flags = out_trans->status_flags; + ), + TP_printk("%s len %u major %u minor %u status %u flags 0x%llx", + __get_str(device), __entry->len, __entry->major, __entry->minor, + __entry->status, __entry->status_flags) +); + +DECLARE_EVENT_CLASS(qaic_data_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __field(int, ret) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __entry->ret = ret; + ), + TP_printk("%s %s %d", __get_str(device), __get_str(msg), __entry->ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_mem_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_mmap_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_exec_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_wait_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_stats_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_util_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DEFINE_EVENT(qaic_data_err, qaic_attach_err, + TP_PROTO(struct qaic_device *qdev, const char *msg, int ret), + TP_ARGS(qdev, msg, ret) +); + +DECLARE_EVENT_CLASS(qaic_data_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __string(msg_var1, msg_var1) + __field(int, ret) + __field(u64, var1) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __assign_str(msg_var1, msg_var1); + __entry->ret = ret; + __entry->var1 = var1; + ), + TP_printk("%s %s Error:%d %s:%llu", + __get_str(device), __get_str(msg), __entry->ret, + __get_str(msg_var1), __entry->var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_mem_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_mmap_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_attach_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_exec_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_wait_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DEFINE_EVENT(qaic_data_err_1, qaic_stats_err_1, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + int ret, u64 var1), + TP_ARGS(qdev, msg, msg_var1, ret, var1) +); + +DECLARE_EVENT_CLASS(qaic_data_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + __string(msg_var1, msg_var1) + __string(msg_var2, msg_var2) + __field(int, ret) + __field(u64, var1) + __field(u64, var2) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + __assign_str(msg_var1, msg_var1); + __assign_str(msg_var2, msg_var2); + __entry->ret = ret; + __entry->var1 = var1; + __entry->var2 = var2; + ), + TP_printk("%s %s Error:%d %s:%llu %s:%llu", + __get_str(device), __get_str(msg), __entry->ret, + __get_str(msg_var1), __entry->var1, + __get_str(msg_var2), __entry->var2) +); + +DEFINE_EVENT(qaic_data_err_2, qaic_mem_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2) +); + +DEFINE_EVENT(qaic_data_err_2, qaic_attach_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2) +); + +DEFINE_EVENT(qaic_data_err_2, qaic_exec_err_2, + TP_PROTO(struct qaic_device *qdev, const char *msg, const char *msg_var1, + const char *msg_var2, int ret, u64 var1, u64 var2), + TP_ARGS(qdev, msg, msg_var1, msg_var2, ret, var1, var2) +); + +DECLARE_EVENT_CLASS(qaic_ssr, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg), + TP_STRUCT__entry( + __string(device, dev_name(&qdev->pdev->dev)) + __string(msg, msg) + ), + TP_fast_assign( + __assign_str(device, dev_name(&qdev->pdev->dev)); + __assign_str(msg, msg); + ), + TP_printk("%s %s", __get_str(device), __get_str(msg)) +); + +DEFINE_EVENT(qaic_ssr, qaic_ssr_cmd, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +DEFINE_EVENT(qaic_ssr, qaic_ssr_event, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +DEFINE_EVENT(qaic_ssr, qaic_ssr_dump, + TP_PROTO(struct qaic_device *qdev, const char *msg), + TP_ARGS(qdev, msg) +); + +#endif /* _TRACE_QAIC_H */ +#include <trace/define_trace.h> -- 2.7.4
next prev parent reply other threads:[~2022-08-15 18:44 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-08-15 18:42 [RFC PATCH 00/14] QAIC DRM accelerator driver Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 01/14] drm/qaic: Add documentation for AIC100 " Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-16 10:55 ` Krzysztof Kozlowski 2022-08-16 10:55 ` Krzysztof Kozlowski 2022-08-16 14:50 ` Jeffrey Hugo 2022-08-16 14:50 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 02/14] drm/qaic: Add uapi and core driver file Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-16 11:06 ` Krzysztof Kozlowski 2022-08-16 11:06 ` Krzysztof Kozlowski 2022-08-16 17:47 ` Jeffrey Hugo 2022-08-16 17:47 ` Jeffrey Hugo 2022-08-16 18:00 ` Krzysztof Kozlowski 2022-08-16 18:00 ` Krzysztof Kozlowski 2022-08-16 18:22 ` Jeffrey Hugo 2022-08-16 18:22 ` Jeffrey Hugo 2022-08-17 5:38 ` Krzysztof Kozlowski 2022-08-17 5:38 ` Krzysztof Kozlowski 2022-08-15 18:42 ` [RFC PATCH 03/14] drm/qaic: Add qaic.h internal header Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 04/14] drm/qaic: Add MHI controller Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 05/14] drm/qaic: Add control path Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 06/14] drm/qaic: Add datapath Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 07/14] drm/qaic: Add debugfs Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 08/14] drm/qaic: Add RAS component Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 09/14] drm/qaic: Add ssr component Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 10/14] drm/qaic: Add sysfs Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 11/14] drm/qaic: Add telemetry Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo [this message] 2022-08-15 18:42 ` [RFC PATCH 12/14] drm/qaic: Add tracepoints Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 13/14] drm/qaic: Add qaic driver to the build system Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo 2022-08-15 18:42 ` [RFC PATCH 14/14] MAINTAINERS: Add entry for QAIC driver Jeffrey Hugo 2022-08-15 18:42 ` Jeffrey Hugo
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1660588956-24027-13-git-send-email-quic_jhugo@quicinc.com \ --to=quic_jhugo@quicinc.com \ --cc=airlied@linux.ie \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=maarten.lankhorst@linux.intel.com \ --cc=mripard@kernel.org \ --cc=quic_ajitpals@quicinc.com \ --cc=quic_carlv@quicinc.com \ --cc=quic_pkanojiy@quicinc.com \ --cc=tzimmermann@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.