mbuf: delete dynamic fields copy in hdr copy

Message ID 20211214075606.979-1-gaoxiangliu0@163.com (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers
Series mbuf: delete dynamic fields copy in hdr copy |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/github-robot: build success github build: passed
ci/intel-Testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS

Commit Message

Gaoxiang Liu Dec. 14, 2021, 7:56 a.m. UTC
  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

Thomas Monjalon Jan. 11, 2022, 4:45 p.m. UTC | #1
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.
  
Olivier Matz Jan. 26, 2022, 1:13 p.m. UTC | #2
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.
  

Patch

diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h
index dedf83c38d..e2dfd47442 100644
--- a/lib/mbuf/rte_mbuf.h
+++ b/lib/mbuf/rte_mbuf.h
@@ -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);
 }
 
 /**