[PATCH v2] lpm: improve performance with copious IPv4 peering routes
Warrington, Jeffrey
jwarrington at verisign.com
Fri Nov 10 15:08:19 CET 2023
On 11/10/23, 2:42 AM, "David Marchand" <david.marchand at redhat.com <mailto:david.marchand at redhat.com>> wrote:
> On Fri, Nov 10, 2023 at 12:11 AM Warrington, Jeffrey
> <jwarrington at verisign.com <mailto:jwarrington at 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 <jcharbon at verisign.com <mailto:jcharbon at verisign.com>>
> > Signed-off-by: Julien Charbon <jcharbon at verisign.com <mailto:jcharbon at verisign.com>>
> > Signed-off-by: Jeff Warrington <jwarrington at verisign.com <mailto:jwarrington at verisign.com>>
> > Co-authored-by: Nicolas Witkowski <nwitkowski at verisign.com <mailto:nwitkowski at verisign.com>>
> > Signed-off-by: Nicolas Witkowski <nwitkowski at verisign.com <mailto:nwitkowski at verisign.com>>
> > Co-authored-by: Rohit Gupta <rogupta at verisign.com <mailto:rogupta at verisign.com>>
> > Signed-off-by: Rohit Gupta <rogupta at verisign.com <mailto:rogupta at 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
More information about the dev
mailing list