From: Georgi Djakov <georgi.djakov@oss.qualcomm.com>
To: andersson@kernel.org, konradybcio@kernel.org,
abelvesa@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, minchan@kernel.org,
senozhatsky@chromium.org
Cc: axboe@kernel.dk, rostedt@goodmis.org, mhiramat@kernel.org,
mathieu.desnoyers@efficios.com, linux-arm-msm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-block@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
djakov@kernel.org
Subject: [PATCH 3/6] trace: qpace: Add tracepoints for QPaCE operations
Date: Wed, 30 Sep 2026 07:52:12 -0700 [thread overview]
Message-ID: <20260930145215.3380977-4-georgi.djakov@oss.qualcomm.com> (raw)
In-Reply-To: <20260930145215.3380977-1-georgi.djakov@oss.qualcomm.com>
Add ftrace tracepoints for the Qualcomm Page Compression Engine
to allow performance analysis and debugging of QPaCE hardware
operations.
Signed-off-by: Georgi Djakov <georgi.djakov@oss.qualcomm.com>
---
drivers/soc/qcom/qpace.c | 12 +++++
include/trace/events/qpace.h | 99 ++++++++++++++++++++++++++++++++++++
2 files changed, 111 insertions(+)
create mode 100644 include/trace/events/qpace.h
diff --git a/drivers/soc/qcom/qpace.c b/drivers/soc/qcom/qpace.c
index 69aa14b7c477..f5b21ffbcbff 100644
--- a/drivers/soc/qcom/qpace.c
+++ b/drivers/soc/qcom/qpace.c
@@ -23,6 +23,9 @@
#include "qpace_internal.h"
+#define CREATE_TRACE_POINTS
+#include <trace/events/qpace.h>
+
#define QPACE_REG_PAGE_SIZE 4096
#define QPACE_CORE_CACHEINDEX_SIZE 4
@@ -310,6 +313,8 @@ int qpace_urgent_compress(dma_addr_t input_addr,
if (ret)
return ret;
+ trace_start_qpace_urgent_compress((u64)input_addr, (u64)output_addr);
+
urg_reg_num = get_cpu() % NUM_TRS_ERS_URG_CMD_REGS;
stat_reg = qpace_urgent_command_trigger(input_addr, output_addr, urg_reg_num,
algo->urg_comp_cntxt);
@@ -338,6 +343,7 @@ int qpace_urgent_compress(dma_addr_t input_addr,
ret = FIELD_GET(URG_CMD_0_ED_STAT_SIZE, stat_reg);
out:
+ trace_end_qpace_urgent_compress((u64)input_addr, (u64)output_addr, ret);
return ret;
}
EXPORT_SYMBOL_GPL(qpace_urgent_compress);
@@ -356,6 +362,9 @@ int qpace_urgent_decompress(dma_addr_t input_addr,
if (ret)
goto out;
+ trace_start_qpace_urgent_decompress((u64)input_addr,
+ (u64)output_addr, input_size);
+
urg_reg_num = get_cpu() % NUM_TRS_ERS_URG_CMD_REGS;
qpace_write_urg_cmd_ctx(qpace_priv, QPACE_URG_CMD_0_CFG_CNTXT_SIZE_n_OFFSET,
urg_reg_num, algo->urg_decomp_cntxt,
@@ -381,6 +390,9 @@ int qpace_urgent_decompress(dma_addr_t input_addr,
ret = FIELD_GET(URG_CMD_0_ED_STAT_SIZE, stat_reg);
out:
+ trace_end_qpace_urgent_decompress((u64)input_addr,
+ (u64)output_addr,
+ input_size, ret);
return ret;
}
EXPORT_SYMBOL_GPL(qpace_urgent_decompress);
diff --git a/include/trace/events/qpace.h b/include/trace/events/qpace.h
new file mode 100644
index 000000000000..3f0ccdb8f206
--- /dev/null
+++ b/include/trace/events/qpace.h
@@ -0,0 +1,99 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM qpace
+
+#if !defined(_TRACE_QPACE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_QPACE_H
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(start_qpace_urgent_decompress,
+
+ TP_PROTO(u64 src, u64 dst, unsigned int size),
+ TP_ARGS(src, dst, size),
+
+ TP_STRUCT__entry(
+ __field(u64, src)
+ __field(u64, dst)
+ __field(unsigned int, size)
+ ),
+
+ TP_fast_assign(
+ __entry->src = src;
+ __entry->dst = dst;
+ __entry->size = size;
+ ),
+
+ TP_printk("src=0x%llx dst=0x%llx size=%u",
+ __entry->src, __entry->dst, __entry->size)
+);
+
+TRACE_EVENT(end_qpace_urgent_decompress,
+
+ TP_PROTO(u64 src, u64 dst, unsigned int size, int ret),
+ TP_ARGS(src, dst, size, ret),
+
+ TP_STRUCT__entry(
+ __field(u64, src)
+ __field(u64, dst)
+ __field(unsigned int, size)
+ __field(int, ret)
+ ),
+
+ TP_fast_assign(
+ __entry->src = src;
+ __entry->dst = dst;
+ __entry->size = size;
+ __entry->ret = ret;
+ ),
+
+ TP_printk("src=0x%llx dst=0x%llx size=%u ret=%d",
+ __entry->src, __entry->dst, __entry->size, __entry->ret)
+);
+
+TRACE_EVENT(start_qpace_urgent_compress,
+
+ TP_PROTO(u64 src, u64 dst),
+ TP_ARGS(src, dst),
+
+ TP_STRUCT__entry(
+ __field(u64, src)
+ __field(u64, dst)
+ ),
+
+ TP_fast_assign(
+ __entry->src = src;
+ __entry->dst = dst;
+ ),
+
+ TP_printk("src=0x%llx dst=0x%llx",
+ __entry->src, __entry->dst)
+);
+
+TRACE_EVENT(end_qpace_urgent_compress,
+
+ TP_PROTO(u64 src, u64 dst, int ret),
+ TP_ARGS(src, dst, ret),
+
+ TP_STRUCT__entry(
+ __field(u64, src)
+ __field(u64, dst)
+ __field(int, ret)
+ ),
+
+ TP_fast_assign(
+ __entry->src = src;
+ __entry->dst = dst;
+ __entry->ret = ret;
+ ),
+
+ TP_printk("src=0x%llx dst=0x%llx ret=%d",
+ __entry->src, __entry->dst, __entry->ret)
+);
+
+#endif /* _TRACE_QPACE_H */
+
+#include <trace/define_trace.h>
next prev parent reply other threads:[~2026-09-30 14:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-30 14:52 [PATCH 0/6] soc: qcom: Add Qualcomm Page Compression Engine (QPaCE) driver Georgi Djakov
2026-09-30 14:52 ` [PATCH 1/6] dt-bindings: soc: qcom: Add QPaCE binding Georgi Djakov
2026-10-02 6:10 ` Krzysztof Kozlowski
2026-09-30 14:52 ` [PATCH 2/6] soc: qcom: qpace: Add Qualcomm Page Compression Engine driver Georgi Djakov
2026-09-30 15:04 ` sashiko-bot
2026-10-03 0:06 ` Oreoluwa Babatunde
2026-10-01 8:50 ` Krzysztof Kozlowski
2026-10-06 23:51 ` Oreoluwa Babatunde
2026-10-07 7:51 ` Krzysztof Kozlowski
2026-10-08 0:08 ` Oreoluwa Babatunde
2026-09-30 14:52 ` Georgi Djakov [this message]
2026-09-30 15:00 ` [PATCH 3/6] trace: qpace: Add tracepoints for QPaCE operations sashiko-bot
2026-09-30 14:52 ` [PATCH 4/6] zram: Add QPaCE zcomp backend Georgi Djakov
2026-09-30 15:08 ` sashiko-bot
2026-10-01 5:43 ` Sergey Senozhatsky
2026-10-06 23:53 ` Oreoluwa Babatunde
2026-10-08 3:52 ` Sergey Senozhatsky
2026-10-01 8:51 ` Krzysztof Kozlowski
2026-10-01 10:27 ` Sergey Senozhatsky
2026-10-07 0:04 ` Oreoluwa Babatunde
2026-10-07 0:03 ` Oreoluwa Babatunde
2026-09-30 14:52 ` [PATCH 5/6] soc: qcom: qpace: Add LLCC slice support Georgi Djakov
2026-09-30 15:08 ` sashiko-bot
2026-09-30 14:52 ` [PATCH 6/6] arm64: dts: qcom: hawi: Add QPaCE DT node Georgi Djakov
2026-09-30 14:59 ` sashiko-bot
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=20260930145215.3380977-4-georgi.djakov@oss.qualcomm.com \
--to=georgi.djakov@oss.qualcomm.com \
--cc=abelvesa@kernel.org \
--cc=andersson@kernel.org \
--cc=axboe@kernel.dk \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djakov@kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=minchan@kernel.org \
--cc=robh@kernel.org \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox