On 7/14/26 4:14 PM, Eelco Chaudron wrote: > > > On 10 Jul 2026, at 17:29, Ilya Maximets wrote: > >> As a general rule, code that requires ALLOW_EXPERIMENTAL_API is not >> allowed on the main branch. >> >> The exemption was granted to the tunnel offload implementation because >> it was a large piece of code that is hard to maintain separately and >> there was a hope that it will become stable in a relatively short >> amount of time. That was 5 years ago, so clearly that didn't work out. >> >> In the current code, even the parts that could be generic are gated >> by the ALLOW_EXPERIMENTAL_API macro. The reason is the noticeable >> performance impact packet metadata restoration API has on every packet >> even when the traffic is not offloaded. There was an attempt to make >> it faster by providing a dynamic mbuf flag, but checking dynamic flags >> still causes performance impact due to a series of indirect calls into >> DPDK per packet. >> >> We don't have test coverage for this code on main, we don't even build >> it in CI on main (and we shouldn't), and there is no much hope for it >> to become performant enough to become stable within a reasonable time >> frame. >> >> So, it's time to remove this code from main. It can live in the >> dpdk-latest branch where we have at least some compilation tests for >> the experimental API. And if someday it becomes stable, we can add >> it back to main. Though the code would likely need to be re-reviewed >> as it at least has some style issues. >> >> With this code removed, there are no more offload providers that >> implements post processing and can return EOPNOTSUPP on a per-device >> basis. However, calling into a separate translation unit, getting >> RCU-protected offload provider and checking if the method exists is >> still expensive if done per packet. Simple vhost-to-vhost forwarding >> test with offload enabled (but not supported, obviously) shows 1-1.5% >> performance degradation. So, the early check of the >> 'post_process_api_supported' before calling into dpif_offload module >> is still needed. >> >> Signed-off-by: Ilya Maximets <[email protected]> > > Thanks for getting the v2 out! Changes look good to me. > > Acked-by: Eelco Chaudron <[email protected]> >
Thanks, Eli and Eelco! I rebased this on top of the partial offload fix and applied to main. I also re-worded the performance-related paragraph in the commit message so it just points out the performance problem with no relation to the code being experimental. Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
