From: Olivier Matz <olivier.matz@6wind.com>
To: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH 1/4] rte_mbuf: add rte_pktmbuf_coalesce
Date: Fri, 16 Dec 2016 11:06:04 +0100 [thread overview]
Message-ID: <20161216110604.7097488e@platinum> (raw)
In-Reply-To: <1480698466-17620-2-git-send-email-tomaszx.kulasek@intel.com>
Hi Tomasz,
On Fri, 2 Dec 2016 18:07:43 +0100, Tomasz Kulasek
<tomaszx.kulasek@intel.com> wrote:
> This patch adds function rte_pktmbuf_coalesce to let crypto PMD
> coalesce chained mbuf before crypto operation and extend their
> capabilities to support segmented mbufs when device cannot handle
> them natively.
>
>
> Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
> ---
> lib/librte_mbuf/rte_mbuf.h | 34 ++++++++++++++++++++++++++++++++++
> 1 file changed, 34 insertions(+)
>
> diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
> index ead7c6e..f048681 100644
> --- a/lib/librte_mbuf/rte_mbuf.h
> +++ b/lib/librte_mbuf/rte_mbuf.h
> @@ -1647,6 +1647,40 @@ static inline int rte_pktmbuf_chain(struct
> rte_mbuf *head, struct rte_mbuf *tail }
>
> /**
> + * Coalesce data from mbuf to the continuous buffer.
> + *
> + * @param mbuf_dst
> + * Contiguous destination mbuf
> + * @param mbuf_src
> + * Uncontiguous source mbuf
> + *
> + * @return
> + * - 0, on success
> + * - -EINVAL, on error
> + */
I think the API should be clarified. In your case, it is expected that the
destination mbuf is already filled with uninitialized data (i.e. that
rte_pktmbuf_append() has been called).
We could wonder if a better API wouldn't be to allocate the dst mbuf in
the function, call append()/prepend(), and do the copy.
Even better, we could have:
int rte_pktmbuf_linearize(struct rte_mbuf *m)
It will reuse the same mbuf (maybe moving the data).
> +
> +#include <rte_hexdump.h>
This should be removed.
> +
> +static inline int
> +rte_pktmbuf_coalesce(struct rte_mbuf *mbuf_dst, struct rte_mbuf *mbuf_src) {
Source mbuf should be const.
> + char *dst;
> +
> + if (!rte_pktmbuf_is_contiguous(mbuf_dst) ||
> + rte_pktmbuf_data_len(mbuf_dst) >=
> + rte_pktmbuf_pkt_len(mbuf_src))
> + return -EINVAL;
Why >= ?
> +
> + dst = rte_pktmbuf_mtod(mbuf_dst, char *);
> +
> + if (!__rte_pktmbuf_read(mbuf_src, 0, rte_pktmbuf_pkt_len(mbuf_src),
> + dst))
When a function returns a pointer, I think it is clearer to do:
if (func() == NULL)
than:
if (!func())
> + return -EINVAL;
> +
> + return 0;
> +}
> +
> +/**
> * Dump an mbuf structure to a file.
> *
> * Dump all fields for the given packet mbuf and all its associated
One more question, I don't see where this function is used in your
patchset. What is your use-case?
Regards,
Olivier
next prev parent reply other threads:[~2016-12-16 10:06 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-02 17:07 [PATCH 0/4] Chained Mbufs support in SW PMDs Tomasz Kulasek
2016-12-02 17:07 ` [PATCH 1/4] rte_mbuf: add rte_pktmbuf_coalesce Tomasz Kulasek
2016-12-16 10:06 ` Olivier Matz [this message]
2016-12-29 15:58 ` Kulasek, TomaszX
2016-12-02 17:07 ` [PATCH 2/4] test: add rte_pktmbuf_coalesce unit tests Tomasz Kulasek
2016-12-02 17:07 ` [PATCH 3/4] crypto: add sgl support for sw PMDs Tomasz Kulasek
2016-12-03 8:28 ` Michał Mirosław
2016-12-12 10:01 ` Kulasek, TomaszX
2016-12-02 17:07 ` [PATCH 4/4] test: add sgl unit tests for crypto devices Tomasz Kulasek
2016-12-29 17:12 ` [PATCH v2 0/5] Chained Mbufs support in SW PMDs Tomasz Kulasek
2016-12-29 17:12 ` [PATCH v2 1/5] rte_mbuf: add rte_pktmbuf_linearize Tomasz Kulasek
2016-12-29 17:12 ` [PATCH v2 2/5] test: add rte_pktmbuf_linearize unit tests Tomasz Kulasek
2016-12-29 17:12 ` [PATCH v2 3/5] crypto: add sgl support in sw PMDs Tomasz Kulasek
2016-12-29 17:12 ` [PATCH v2 4/5] crypto: add sgl support in openssl PMD Tomasz Kulasek
2016-12-29 17:12 ` [PATCH v2 5/5] test: add sgl unit tests for crypto devices Tomasz Kulasek
2017-01-05 9:12 ` [PATCH v3 0/5] Chained Mbufs support in SW PMDs Tomasz Kulasek
2017-01-05 9:12 ` [PATCH v3 1/5] rte_mbuf: add rte_pktmbuf_linearize Tomasz Kulasek
2017-01-05 15:37 ` De Lara Guarch, Pablo
2017-01-05 16:52 ` Kulasek, TomaszX
2017-01-05 9:12 ` [PATCH v3 2/5] test: add rte_pktmbuf_linearize unit tests Tomasz Kulasek
2017-01-05 9:12 ` [PATCH v3 3/5] crypto: add sgl support in sw PMDs Tomasz Kulasek
2017-01-05 9:12 ` [PATCH v3 4/5] crypto: add sgl support in openssl PMD Tomasz Kulasek
2017-01-05 9:12 ` [PATCH v3 5/5] test: add sgl unit tests for crypto devices Tomasz Kulasek
2017-01-05 16:44 ` [PATCH v4] rte_mbuf: add rte_pktmbuf_linearize Tomasz Kulasek
2017-01-10 16:50 ` Olivier MATZ
2017-01-12 9:40 ` [PATCH v5] mbuf: add a function to linearize a packet Tomasz Kulasek
2017-01-13 15:32 ` Olivier Matz
2017-01-13 15:40 ` Kulasek, TomaszX
2017-01-15 18:32 ` Thomas Monjalon
2017-01-05 16:46 ` [PATCH v4 0/3] Chained Mbufs support in SW PMDs Tomasz Kulasek
2017-01-05 16:46 ` [PATCH v4 1/3] crypto: add sgl support in sw PMDs Tomasz Kulasek
2017-01-05 16:46 ` [PATCH v4 2/3] crypto: add sgl support in openssl PMD Tomasz Kulasek
2017-01-05 16:46 ` [PATCH v4 3/3] test: add sgl unit tests for crypto devices Tomasz Kulasek
2017-01-13 15:23 ` [PATCH v5 0/3] Chained Mbufs support in SW PMDs Tomasz Kulasek
2017-01-13 15:23 ` [PATCH v5 1/3] crypto: add sgl support in sw PMDs Tomasz Kulasek
2017-01-16 16:08 ` Declan Doherty
2017-01-13 15:23 ` [PATCH v5 2/3] crypto: add sgl support in openssl PMD Tomasz Kulasek
2017-01-16 16:10 ` Declan Doherty
2017-01-13 15:23 ` [PATCH v5 3/3] test: add sgl unit tests for crypto devices Tomasz Kulasek
2017-01-16 16:11 ` Declan Doherty
2017-01-16 19:00 ` [PATCH v5 0/3] Chained Mbufs support in SW PMDs De Lara Guarch, Pablo
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=20161216110604.7097488e@platinum \
--to=olivier.matz@6wind.com \
--cc=dev@dpdk.org \
--cc=tomaszx.kulasek@intel.com \
/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.