[06/15] event/sw: switch test counter to dynamic mbuf field
Checks
Commit Message
The test worker_loopback used the deprecated mbuf field udata64.
It is moved to a dynamic field in order to allow removal of udata64.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
drivers/event/sw/sw_evdev_selftest.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
Comments
On 10/26/20 8:20 AM, Thomas Monjalon wrote:
> The test worker_loopback used the deprecated mbuf field udata64.
> It is moved to a dynamic field in order to allow removal of udata64.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
@@ -40,6 +40,10 @@ struct test {
uint32_t service_id;
};
+static int counter_dynfield_offset;
+#define COUNTER_FIELD(mbuf) \
+ (*RTE_MBUF_DYNFIELD(mbuf, counter_dynfield_offset, uint8_t *))
+
static struct rte_event release_ev;
static inline struct rte_mbuf *
@@ -2987,8 +2991,8 @@ worker_loopback_worker_fn(void *arg)
}
ev[i].queue_id = 0;
- ev[i].mbuf->udata64++;
- if (ev[i].mbuf->udata64 != 16) {
+ COUNTER_FIELD(ev[i].mbuf)++;
+ if (COUNTER_FIELD(ev[i].mbuf) != 16) {
ev[i].op = RTE_EVENT_OP_FORWARD;
enqd = rte_event_enqueue_burst(evdev, port,
&ev[i], 1);
@@ -3028,7 +3032,7 @@ worker_loopback_producer_fn(void *arg)
m = rte_pktmbuf_alloc(t->mbuf_pool);
} while (m == NULL);
- m->udata64 = 0;
+ COUNTER_FIELD(m) = 0;
struct rte_event ev = {
.op = RTE_EVENT_OP_NEW,
@@ -3061,6 +3065,18 @@ worker_loopback(struct test *t, uint8_t disable_implicit_release)
int err;
int w_lcore, p_lcore;
+ static const struct rte_mbuf_dynfield counter_dynfield_desc = {
+ .name = "rte_event_sw_dynfield_selftest_counter",
+ .size = sizeof(uint8_t),
+ .align = __alignof__(uint8_t),
+ };
+ counter_dynfield_offset =
+ rte_mbuf_dynfield_register(&counter_dynfield_desc);
+ if (counter_dynfield_offset < 0) {
+ printf("Error registering mbuf field\n");
+ return -1;
+ }
+
if (init(t, 8, 2) < 0 ||
create_atomic_qids(t, 8) < 0) {
printf("%d: Error initializing device\n", __LINE__);