From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: Thomas Monjalon <thomas@monjalon.net>,
Chengwen Feng <fengchengwen@huawei.com>,
Kevin Laatz <kevin.laatz@intel.com>,
Bruce Richardson <bruce.richardson@intel.com>
Subject: [PATCH v4 2/5] dmadev: avoid copies in tracepoints
Date: Tue, 4 Mar 2025 17:06:30 +0100 [thread overview]
Message-ID: <20250304160633.385185-3-david.marchand@redhat.com> (raw)
In-Reply-To: <20250304160633.385185-1-david.marchand@redhat.com>
No need to copy values in intermediate variables.
Use the right trace point emitters.
Update the pcie struct to avoid aliasing warning.
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v3:
- added anonymous union around pcie struct (which triggered an abidiff
warning that needs waiving) and kept original call to
rte_trace_point_emit_u64,
Changes since v2:
- split this change into multiple changes,
only kept trivial parts in this patch,
---
devtools/libabigail.abignore | 5 +++++
lib/dmadev/rte_dmadev.h | 29 ++++++++++++++++-------------
lib/dmadev/rte_dmadev_trace.h | 20 ++++++--------------
3 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index ce501632b3..88aa1ec981 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -36,3 +36,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Temporary exceptions till next major ABI version ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+[suppress_type]
+ name = rte_dma_port_param
+ type_kind = struct
+ has_size_change = no
+ has_data_member = {pcie}
diff --git a/lib/dmadev/rte_dmadev.h b/lib/dmadev/rte_dmadev.h
index 2f9304a9db..26f9d4b095 100644
--- a/lib/dmadev/rte_dmadev.h
+++ b/lib/dmadev/rte_dmadev.h
@@ -523,19 +523,22 @@ struct rte_dma_port_param {
* and capabilities.
*/
__extension__
- struct {
- uint64_t coreid : 4; /**< PCIe core id used. */
- uint64_t pfid : 8; /**< PF id used. */
- uint64_t vfen : 1; /**< VF enable bit. */
- uint64_t vfid : 16; /**< VF id used. */
- /** The pasid filed in TLP packet. */
- uint64_t pasid : 20;
- /** The attributes filed in TLP packet. */
- uint64_t attr : 3;
- /** The processing hint filed in TLP packet. */
- uint64_t ph : 2;
- /** The steering tag filed in TLP packet. */
- uint64_t st : 16;
+ union {
+ struct {
+ uint64_t coreid : 4; /**< PCIe core id used. */
+ uint64_t pfid : 8; /**< PF id used. */
+ uint64_t vfen : 1; /**< VF enable bit. */
+ uint64_t vfid : 16; /**< VF id used. */
+ /** The pasid filed in TLP packet. */
+ uint64_t pasid : 20;
+ /** The attributes filed in TLP packet. */
+ uint64_t attr : 3;
+ /** The processing hint filed in TLP packet. */
+ uint64_t ph : 2;
+ /** The steering tag filed in TLP packet. */
+ uint64_t st : 16;
+ };
+ uint64_t val;
} pcie;
};
uint64_t reserved[2]; /**< Reserved for future fields. */
diff --git a/lib/dmadev/rte_dmadev_trace.h b/lib/dmadev/rte_dmadev_trace.h
index be089c065c..1beb938168 100644
--- a/lib/dmadev/rte_dmadev_trace.h
+++ b/lib/dmadev/rte_dmadev_trace.h
@@ -46,11 +46,10 @@ RTE_TRACE_POINT(
const struct rte_dma_conf __dev_conf = {0};
dev_conf = &__dev_conf;
#endif /* _RTE_TRACE_POINT_REGISTER_H_ */
- int enable_silent = (int)dev_conf->enable_silent;
rte_trace_point_emit_i16(dev_id);
rte_trace_point_emit_u16(dev_conf->nb_vchans);
rte_trace_point_emit_u16(dev_conf->priority);
- rte_trace_point_emit_int(enable_silent);
+ rte_trace_point_emit_u8(dev_conf->enable_silent);
rte_trace_point_emit_int(ret);
)
@@ -83,21 +82,14 @@ RTE_TRACE_POINT(
const struct rte_dma_vchan_conf __conf = {0};
conf = &__conf;
#endif /* _RTE_TRACE_POINT_REGISTER_H_ */
- int src_port_type = conf->src_port.port_type;
- int dst_port_type = conf->dst_port.port_type;
- int direction = conf->direction;
- uint64_t src_pcie_cfg;
- uint64_t dst_pcie_cfg;
rte_trace_point_emit_i16(dev_id);
rte_trace_point_emit_u16(vchan);
- rte_trace_point_emit_int(direction);
+ rte_trace_point_emit_int(conf->direction);
rte_trace_point_emit_u16(conf->nb_desc);
- rte_trace_point_emit_int(src_port_type);
- memcpy(&src_pcie_cfg, &conf->src_port.pcie, sizeof(uint64_t));
- rte_trace_point_emit_u64(src_pcie_cfg);
- memcpy(&dst_pcie_cfg, &conf->dst_port.pcie, sizeof(uint64_t));
- rte_trace_point_emit_int(dst_port_type);
- rte_trace_point_emit_u64(dst_pcie_cfg);
+ rte_trace_point_emit_int(conf->src_port.port_type);
+ rte_trace_point_emit_u64(conf->src_port.pcie.val);
+ rte_trace_point_emit_int(conf->dst_port.port_type);
+ rte_trace_point_emit_u64(conf->dst_port.pcie.val);
rte_trace_point_emit_ptr(conf->auto_free.m2d.pool);
rte_trace_point_emit_int(ret);
)
--
2.48.1
next prev parent reply other threads:[~2025-03-04 16:07 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-24 16:14 [PATCH 1/2] trace: support expression for blob length David Marchand
2025-01-24 16:14 ` [PATCH 2/2] dmadev: avoid copies in tracepoints David Marchand
2025-01-27 8:25 ` [EXTERNAL] [PATCH 1/2] trace: support expression for blob length Jerin Jacob
2025-01-30 14:58 ` [PATCH v2 1/3] " David Marchand
2025-01-30 14:58 ` [PATCH v2 2/3] dmadev: avoid copies in tracepoints David Marchand
2025-01-30 14:58 ` [PATCH v2 3/3] trace: fix undefined behavior in register David Marchand
2025-01-30 19:10 ` Stephen Hemminger
2025-01-30 21:06 ` David Marchand
2025-02-07 8:49 ` David Marchand
2025-02-07 11:39 ` [EXTERNAL] " Sunil Kumar Kori
2025-02-10 9:02 ` Sunil Kumar Kori
2025-02-10 9:36 ` David Marchand
2025-02-10 13:37 ` [EXTERNAL] " Jerin Jacob
2025-02-10 14:04 ` David Marchand
2025-02-10 13:38 ` [EXTERNAL] [PATCH v2 1/3] trace: support expression for blob length Jerin Jacob
2025-02-10 17:44 ` [PATCH v3 0/6] Trace point framework enhancement for dmadev David Marchand
2025-02-10 17:44 ` [PATCH v3 1/6] ci: check traces validity David Marchand
2025-02-10 17:44 ` [PATCH v3 2/6] trace: support dereferencing arguments David Marchand
2025-02-11 8:44 ` [EXTERNAL] " Sunil Kumar Kori
2025-02-11 9:53 ` David Marchand
2025-02-12 5:08 ` Sunil Kumar Kori
2025-02-10 17:44 ` [PATCH v3 3/6] trace: support expression for blob length David Marchand
2025-02-10 17:44 ` [PATCH v3 4/6] trace: support dumping binary inside a struct David Marchand
2025-02-11 8:52 ` [EXTERNAL] " Sunil Kumar Kori
2025-02-11 9:54 ` David Marchand
2025-02-12 5:14 ` Sunil Kumar Kori
2025-02-18 14:28 ` David Marchand
2025-02-19 11:17 ` Jerin Jacob
2025-02-10 17:44 ` [PATCH v3 5/6] dmadev: avoid copies in tracepoints David Marchand
2025-02-10 17:44 ` [PATCH v3 6/6] trace: fix undefined behavior in register David Marchand
2025-02-11 8:41 ` [EXTERNAL] [PATCH v3 0/6] Trace point framework enhancement for dmadev Sunil Kumar Kori
2025-03-04 16:06 ` [PATCH v4 0/5] " David Marchand
2025-03-04 16:06 ` [PATCH v4 1/5] ci: check traces validity David Marchand
2025-03-04 16:06 ` David Marchand [this message]
2025-03-04 16:06 ` [PATCH v4 3/5] trace: support dereferencing pointers David Marchand
2025-03-05 5:19 ` [EXTERNAL] " Sunil Kumar Kori
2025-03-04 16:06 ` [PATCH v4 4/5] trace: support expression for blob length David Marchand
2025-03-05 5:20 ` [EXTERNAL] " Sunil Kumar Kori
2025-03-04 16:06 ` [PATCH v4 5/5] trace: fix undefined behavior in register David Marchand
2025-03-05 5:20 ` [EXTERNAL] " Sunil Kumar Kori
2025-03-05 17:49 ` [PATCH v4 0/5] Trace point framework enhancement for dmadev David Marchand
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=20250304160633.385185-3-david.marchand@redhat.com \
--to=david.marchand@redhat.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=kevin.laatz@intel.com \
--cc=thomas@monjalon.net \
/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 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.