Performance evolution of route lookup on Linux 0 ▲ Vincent Bernat 38 minutes ago · 5 min read1014 words · Tech · hide In previous articles, I explained how the Linux kernel implements IPv4 and IPv6 routing tables, and I showed the performance improvement of route lookups from Linux 2.6.32 to 4.16 for IPv4—including the impact of the Meltdown and Spectre mitigations—as well as from Linux 2.6.39 to 4.18 for IPv6. This article updates the numbers through Linux 7.3 and investigates the perpetrator responsible for the performance regressions! 🕵️♂️ I ran the following benchmarks on an AMD EPYC 8024P, a Zen 4c CPU, rented from Scaleway, running at 2.4 GHz with CPU boost disabled. I compiled the kernels with GCC 10.2: this version can compile older kernels as well as the current ones. IPv6 Performance evolution of IPv6 route lookups. Versions with an asterisk have SRSO mitigation disabled. I tested four scenarios: a recent full view with about 260,000 prefixes, a full view from 2017 with about 40,000 prefixes, a set of 40,000 /48 prefixes, such that 2 lookups out of 3 match, and a set of 40,000 random /128… Commenting on Bubbles has been removed. Why? If you want to talk about this post, write to the author, use the comments on their blog if it has them, or reply with a "RE:" post on your own blog. Suggestions? feedback@bubbles.town