> -----Original Message----- > From: David Marchand <david.march...@redhat.com> > Sent: Thursday, June 15, 2023 4:47 PM > To: dev@dpdk.org > Cc: NBU-Contact-Thomas Monjalon (EXTERNAL) <tho...@monjalon.net>; > i.maxim...@ovn.org; Aman Singh <aman.deep.si...@intel.com>; Yuying > Zhang <yuying.zh...@intel.com>; Matan Azrad <ma...@nvidia.com>; Slava > Ovsiienko <viachesl...@nvidia.com>; Ori Kam <or...@nvidia.com>; > Suanming Mou <suanmi...@nvidia.com>; David Christensen > <d...@linux.vnet.ibm.com>; Ruifeng Wang <ruifeng.w...@arm.com>; Bruce > Richardson <bruce.richard...@intel.com>; Konstantin Ananyev > <konstantin.v.anan...@yandex.ru>; Andrew Rybchenko > <andrew.rybche...@oktetlabs.ru>; Ferruh Yigit <ferruh.yi...@amd.com> > Subject: [RFC PATCH v2] ethdev: advertise flow restore in mbuf > > As reported by Ilya [1], unconditionally calling > rte_flow_get_restore_info() impacts an application performance for drivers > that do not provide this ops. > It could also impact processing of packets that require no call to > rte_flow_get_restore_info() at all. > > Register a dynamic mbuf flag when an application negotiates tunnel > metadata delivery (calling rte_eth_rx_metadata_negotiate() with > RTE_ETH_RX_METADATA_TUNNEL_ID). > > Drivers then advertise that metadata can be extracted by setting this > dynamic flag in each mbuf. > > The application then calls rte_flow_get_restore_info() only when required. > > Link: http://inbox.dpdk.org/dev/5248c2ca-f2a6-3fb0-38b8- > 7f659bfa4...@ovn.org/ > Signed-off-by: David Marchand <david.march...@redhat.com> > ---
Hello David, App segfaults at startup with this patch applied on main: $ ./build/app/dpdk-testpmd -a 0000:86:00.0 -- -i #0 0x0000000000a11133 in rte_flow_restore_info_dynflag_register (flag=0x0) at ../lib/ethdev/rte_flow.c:1467 #1 0x00000000009f6f7f in rte_eth_rx_metadata_negotiate (port_id=0, features=0x7fffffffe280) at ../lib/ethdev/rte_ethdev.c:6446 #2 0x00000000004eb003 in eth_rx_metadata_negotiate_mp (port_id=0) at ../app/test-pmd/testpmd.c:572 #3 0x00000000004eca7d in init_config_port_offloads (pid=0, socket_id=1) at ../app/test-pmd/testpmd.c:1627 #4 0x00000000004ecf0d in init_config () at ../app/test-pmd/testpmd.c:1737 #5 0x00000000004f3b15 in main (argc=2, argv=0x7fffffffe5e0) at ../app/test-pmd/testpmd.c:4592 Device: ConnectX-6 Dx Regards, Ali