Popcorn Linux: Cross Kernel Process and Thread Migration in a Linux-Based Multikernel


TR Number



Journal Title

Journal ISSN

Volume Title


Virginia Tech


Proliferation of new computing hardware platforms that support increasing numbers of cores, as well as increasing ISA heterogeneity, is creating opportunity for systems software developers to question existing software architecture.

One promising emerging systems architecture is the multikernel, pioneered in Barrelfish OS. The multikernel directly addresses the challenges of high core counts and increased heterogeneity by partitioning the system into multiple independently running kernel instances which cooperate to form a single operating system. Popcorn Linux is an adaptation of the multikernel concept to a Linux environment, melding the multikernel concept with the power and ubiquity of the Linux platform. The goal of the Popcorn Linux project is to provide a Linux-based single-system image environment for heterogeneous hardware. In constructing this environment, Linux must be extended to distribute the plethora of operating system services that it provides across kernel instances.

This thesis presents the newly developed Popcorn Linux mechanism for migrating tasks and their address spaces between kernel instances at arbitrary points in their execution. Both process and thread migration is supported, and distributed address spaces are maintained and guaranteed to remain consistent between distributed thread group members running on different kernel instances. Tasks can migrate through an unlimited number of kernel instances, as well as back to previously visited kernel instances. Additionally, the full task life-cycle is supported, allowing migrated tasks to exit and create new children on whichever kernel instance happens to be hosting them.

The mechanisms developed were vetted through unit testing, review, and a number of compute-bound benchmarks in a homogeneous x86 64bit environment. Correctness was demonstrated, and performance metrics were acquired. Popcorn Linux performance was shown to be reasonable when compared to SMP Linux. The mechanisms developed are therefore deemed feasible. Scalability was determined to be a function of workload characteristics, where in some cases Popcorn Linux out-scales SMP Linux and in other cases SMP Linux out-scales Popcorn Linux. Optimizations are recommended to reduce the maturity gap between Popcorn Linux and SMP Linux, improving Popcorn Linux performance.



OS, Multikernel