Hi, > -----Original Message----- > From: g...@marvell.com <g...@marvell.com> > Sent: Thursday, October 22, 2020 10:11 AM > To: or...@nvidia.com > Cc: tho...@monjalon.net; Guy Kaneti <g...@marvell.com>; Smadar Fuks > <smad...@marvell.com>; Dovrat Zifroni <dov...@marvell.com>; > dev@dpdk.org > Subject: [PATCH v1] app/regex: add job context > > From: Guy Kaneti <g...@marvell.com> > > Store mbuf pointer associated with that job. > > Signed-off-by: Guy Kaneti <g...@marvell.com> > --- > app/test-regex/main.c | 20 ++++++++++++++++---- > 1 file changed, 16 insertions(+), 4 deletions(-) > > diff --git a/app/test-regex/main.c b/app/test-regex/main.c index > e6080b44b..f869d754b 100644 > --- a/app/test-regex/main.c > +++ b/app/test-regex/main.c > @@ -35,6 +35,10 @@ enum app_args { > ARG_NUM_OF_ITERATIONS, > }; > > +struct job_ctx { > + struct rte_mbuf *mbuf; > +}; > + > static void > usage(const char *prog_name) > { > @@ -266,6 +270,7 @@ run_regex(struct rte_mempool *mbuf_mp, uint32_t > nb_jobs, > time_t start; > time_t end; > double time; > + struct job_ctx *jobs_ctx; > > shinfo.free_cb = extbuf_free_cb; > > @@ -275,6 +280,12 @@ run_regex(struct rte_mempool *mbuf_mp, uint32_t > nb_jobs, > return -ENOMEM; > } > > + jobs_ctx = rte_malloc(NULL, sizeof(struct job_ctx)*nb_jobs, 0); > + if (!jobs_ctx) { > + printf("Error, can't allocate memory for jobs_ctx.\n"); > + return -ENOMEM; > + } > + > /* Allocate the jobs and assign each job with an mbuf. */ > for (i = 0; i < nb_jobs; i++) { > ops[i] = rte_malloc(NULL, sizeof(*ops[0]) + > nb_max_matches * @@ -317,6 +328,7 @@ run_regex(struct rte_mempool > *mbuf_mp, uint32_t nb_jobs, > long act_job_len = RTE_MIN(job_len, buf_len - pos); > rte_pktmbuf_attach_extbuf(ops[i]->mbuf, &buf[pos], 0, > act_job_len, &shinfo); > + jobs_ctx[i].mbuf = ops[i]->mbuf; > ops[i]->mbuf->data_len = job_len; > ops[i]->mbuf->pkt_len = act_job_len; > ops[i]->user_id = i; > @@ -386,13 +398,13 @@ run_regex(struct rte_mempool *mbuf_mp, > uint32_t nb_jobs, > } > end: > for (i = 0; i < actual_jobs; i++) { > - if (ops[i]) { > - if (ops[i]->mbuf) > - rte_pktmbuf_free(ops[i]->mbuf); > + if (ops[i]) > rte_free(ops[i]); > - } > + if (jobs_ctx[i].mbuf) > + rte_pktmbuf_free(jobs_ctx[i].mbuf); > } > rte_free(ops); > + rte_free(jobs_ctx); > if (buf) > rte_free(buf); > return res; > -- > 2.28.0
Kind reminder to all maintainers, please review and ack/comment.