On 11/10/23, 2:42 AM, "David Marchand" <david.march...@redhat.com <mailto:david.march...@redhat.com>> wrote:
> On Fri, Nov 10, 2023 at 12:11 AM Warrington, Jeffrey > <jwarring...@verisign.com <mailto:jwarring...@verisign.com>> wrote: > > > > Minimize the performance impact of large numbers of BGP peering > > routes by updating LPM's IPv4 code to use a hash like the IPv6 code. > > > > Co-authored-by: Julien Charbon <jchar...@verisign.com > > <mailto:jchar...@verisign.com>> > > Signed-off-by: Julien Charbon <jchar...@verisign.com > > <mailto:jchar...@verisign.com>> > > Signed-off-by: Jeff Warrington <jwarring...@verisign.com > > <mailto:jwarring...@verisign.com>> > > Co-authored-by: Nicolas Witkowski <nwitkow...@verisign.com > > <mailto:nwitkow...@verisign.com>> > > Signed-off-by: Nicolas Witkowski <nwitkow...@verisign.com > > <mailto:nwitkow...@verisign.com>> > > Co-authored-by: Rohit Gupta <rogu...@verisign.com > > <mailto:rogu...@verisign.com>> > > Signed-off-by: Rohit Gupta <rogu...@verisign.com > > <mailto:rogu...@verisign.com>> > Thanks for the patch. Thanks for the suggestions and feedback. > Cc: lpm maintainers. > Don't forget to Cc: maintainers when sending patches. > You can simply pass --cc-cmd devtools/get-maintainer.sh to git send-email. Apologies, that was clearly stated in section 8.12, Contributor's Guidelines, and I still forgot. > Can you provide performance numbers? Yes, I have lpm_perf_autotest before and after: Binaries Add Delete 23.11-rc1/build-gcc-shared: 145226 90583.5 23.11-rc1/build-gcc-static: 259492 90954.4 23.11-rc1/build-mini: 145222 90375.7 23.11-rc1/build-x86-generic: 259488 90406.7 proposed/build-gcc-shared: 748 1391 proposed/build-gcc-static: 605 1240.69 proposed/build-mini: 621 1196.15 proposed/build-x86-generic: 607 1249.39 > After this patch, LPM and LPM6 implementations become close. > Did you consider refactoring so that LPM and LPM6 can share more code? No, but I should have. The previous goal was to minimize our change, and now we should pivot to simplifying the maintenance. > > --- > > lib/lpm/rte_lpm.c | 306 ++++++++++++++++++++++------------------------ > > lib/lpm/rte_lpm.h | 6 + > Seeing how no other .c is touched and no exposed symbol use it, > exposing the rte_lpm_rule_key structure in the public API is unneeded. Good point, that's a quick change. > > 2 files changed, 149 insertions(+), 163 deletions(-) I'll send an updated patch as soon as I get a chance, Jeffrey