Productionizing IPv6 in the Linux kernel
Martin Lau from the Facebook kernel team shared how the Linux kernel had significant scalability issues (up until recently) in supporting IPv6. He went through how simple commands like printing the IPv6 routing table in Linux was taking more than 10 seconds for what was a seemingly small table and then explained the details around why this was happening. (Spoiler: The kernel was creating clone routes for every unique destination IPv6 address in order to record MTU per destination, resulting in sometimes tens or hundreds of thousands of route table entries. This slowed down any access to the table and caused TCP lockups when garbage collection ran on the table.) Martin then reviewed a number of other issues in IPv6 that the Facebook team has upstreamed in order to make the Linux kernel more scalable for IPv6.