mbuf: delete dynamic fields copy in hdr copy
Checks
Commit Message
Because dynamic fields are registered by the DPDK application,
so it is up to the application to decide whether to copy the value of
dynamic fields.
So delete dynamic fields copy in __rte_pktmbuf_copy_hdr.
It's more flexible for the DPDK application,
and is useful for improving performance.
Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
Signed-off-by: Gaoxiang Liu <liugaoxiang@huawei.com>
---
lib/mbuf/rte_mbuf.h | 1 -
1 file changed, 1 deletion(-)
Comments
14/12/2021 08:56, Gaoxiang Liu:
> Because dynamic fields are registered by the DPDK application,
> so it is up to the application to decide whether to copy the value of
> dynamic fields.
> So delete dynamic fields copy in __rte_pktmbuf_copy_hdr.
> It's more flexible for the DPDK application,
> and is useful for improving performance.
Yes, removing operations will improve the performance,
but it looks wrong.
This is copying all dynamic fields, not matter which one is registered.
We cannot ask the application to manage dynamic fields copy,
especially if the copy is done inside a library.
Hi,
On Tue, Jan 11, 2022 at 05:45:49PM +0100, Thomas Monjalon wrote:
> 14/12/2021 08:56, Gaoxiang Liu:
> > Because dynamic fields are registered by the DPDK application,
> > so it is up to the application to decide whether to copy the value of
> > dynamic fields.
> > So delete dynamic fields copy in __rte_pktmbuf_copy_hdr.
> > It's more flexible for the DPDK application,
> > and is useful for improving performance.
>
> Yes, removing operations will improve the performance,
> but it looks wrong.
> This is copying all dynamic fields, not matter which one is registered.
> We cannot ask the application to manage dynamic fields copy,
> especially if the copy is done inside a library.
+1
Dynamic fields/flags can be registered by applications, libraries,
drivers, ...
There is no entity that is aware of which field/flag has to be copied,
so the only possibility is to copy all of them.
@@ -1101,7 +1101,6 @@ __rte_pktmbuf_copy_hdr(struct rte_mbuf *mdst, const struct rte_mbuf *msrc)
mdst->tx_offload = msrc->tx_offload;
mdst->hash = msrc->hash;
mdst->packet_type = msrc->packet_type;
- rte_mbuf_dynfield_copy(mdst, msrc);
}
/**