Google has traditionally employed a rebase model when updating our kernels -- periodically rebasing every internal patch to a new Linux base. This has resulted in a number of historical challenges in both tracking upstream development and sharing our own innovations:
- Upstreaming our features is difficult as they are developed against and tested in our derivative kernel. This testing is difficult to reproduce on an upstream kernel as the workloads are typically not compatible or have a different performance profile.
- We operate complex workloads at a global scale that often reveal system bottlenecks, bugs, and deadlocks. The periodic nature of our rebase delays the discovery, diagnosis, and sharing of these issues.
- We frequently pay a backport cost to incorporate new features and hardware support, one that increases with the age of our internal tree.
“Icebreaker” (taking its name from the ships commonly used to clear ice from shipping lanes) is our effort to begin rethinking this challenge. By maintaining a small set of patches that focus only on binary and hardware compatibility, we are looking to a future where we can develop and test our most important workloads on a truly near-upstream kernel. We’ll share how we’re starting to think about this problem, initial successes, and where we see challenges ahead.