Peter Oskolkov posted patches titled Introduce FUTEX_SWAP, which attempts to begin the process of upstreaming a Google in-house threading performance optimisation that’s been deployed widely in production for many years. The basic idea is to move from a 1:1 (kernel threading) model in which every thread has both a userspace and kernel context to an M:N (hybrid) model in which there are N userspace threads multiplexed onto M kernel contexts. The work is described in a paper and a video linked from the patch: https://lwn.net/Articles/824409.