Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system

As manufacturers introduce new machines with more cores, more NUMA-like architectures, and more tightly integrated heterogeneous processors, the traditional abstraction of a monolithic OS running on a SMP system is encountering new challenges.  One proposed path forward is the multikernel operating...

Full description

Bibliographic Details
Main Author: Shelton, Benjamin H.
Other Authors: Electrical and Computer Engineering
Format: Others
Published: Virginia Tech 2013
Subjects:
Online Access:http://hdl.handle.net/10919/23119
id ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-23119
record_format oai_dc
spelling ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-231192020-09-29T05:41:30Z Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system Shelton, Benjamin H. Electrical and Computer Engineering Ravindran, Binoy Plassmann, Paul E. White, Christopher Jules Operating systems multikernel high-performance computing heterogeneous computing multicore scalability message passing As manufacturers introduce new machines with more cores, more NUMA-like architectures, and more tightly integrated heterogeneous processors, the traditional abstraction of a monolithic OS running on a SMP system is encountering new challenges.  One proposed path forward is the multikernel operating system.  Previous efforts have shown promising results both in scalability and in support for heterogeneity.  However, one effort\'s source code is not freely available (FOS), and the other effort is not self-hosting and does not support a majority of existing applications (Barrelfish).<br /><br />In this thesis, we present Popcorn, a Linux-based multikernel operating system.  While Popcorn was a group effort, the boot layer code and the memory partitioning code are the author\'s work, and we present them in detail here.  To our knowledge, we are the first to support multiple instances of the Linux kernel on a 64-bit x86 machine and to support more than 4 kernels running simultaneously. <br /><br />We demonstrate that existing subsystems within Linux can be leveraged to meet the design goals of a multikernel OS.  Taking this approach, we developed a fast inter-kernel network driver and messaging layer.  We demonstrate that the network driver can share a 1 Gbit/s link without degraded performance and that in combination with guest kernels, it meets or exceeds the performance of SMP Linux with an event-based web server.  We evaluate the messaging layer with microbenchmarks and conclude that it performs well given the limitations of current x86-64 hardware.  Finally, we use the messaging layer to provide live process migration between cores. Master of Science 2013-06-01T08:00:14Z 2013-06-01T08:00:14Z 2013-05-31 Thesis vt_gsexam:1039 http://hdl.handle.net/10919/23119 In Copyright http://rightsstatements.org/vocab/InC/1.0/ ETD application/pdf Virginia Tech
collection NDLTD
format Others
sources NDLTD
topic Operating systems
multikernel
high-performance computing
heterogeneous computing
multicore
scalability
message passing
spellingShingle Operating systems
multikernel
high-performance computing
heterogeneous computing
multicore
scalability
message passing
Shelton, Benjamin H.
Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system
description As manufacturers introduce new machines with more cores, more NUMA-like architectures, and more tightly integrated heterogeneous processors, the traditional abstraction of a monolithic OS running on a SMP system is encountering new challenges.  One proposed path forward is the multikernel operating system.  Previous efforts have shown promising results both in scalability and in support for heterogeneity.  However, one effort\'s source code is not freely available (FOS), and the other effort is not self-hosting and does not support a majority of existing applications (Barrelfish).<br /><br />In this thesis, we present Popcorn, a Linux-based multikernel operating system.  While Popcorn was a group effort, the boot layer code and the memory partitioning code are the author\'s work, and we present them in detail here.  To our knowledge, we are the first to support multiple instances of the Linux kernel on a 64-bit x86 machine and to support more than 4 kernels running simultaneously. <br /><br />We demonstrate that existing subsystems within Linux can be leveraged to meet the design goals of a multikernel OS.  Taking this approach, we developed a fast inter-kernel network driver and messaging layer.  We demonstrate that the network driver can share a 1 Gbit/s link without degraded performance and that in combination with guest kernels, it meets or exceeds the performance of SMP Linux with an event-based web server.  We evaluate the messaging layer with microbenchmarks and conclude that it performs well given the limitations of current x86-64 hardware.  Finally, we use the messaging layer to provide live process migration between cores. === Master of Science
author2 Electrical and Computer Engineering
author_facet Electrical and Computer Engineering
Shelton, Benjamin H.
author Shelton, Benjamin H.
author_sort Shelton, Benjamin H.
title Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system
title_short Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system
title_full Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system
title_fullStr Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system
title_full_unstemmed Popcorn Linux: enabling efficient inter-core communication in a Linux-based multikernel operating system
title_sort popcorn linux: enabling efficient inter-core communication in a linux-based multikernel operating system
publisher Virginia Tech
publishDate 2013
url http://hdl.handle.net/10919/23119
work_keys_str_mv AT sheltonbenjaminh popcornlinuxenablingefficientintercorecommunicationinalinuxbasedmultikerneloperatingsystem
_version_ 1719345161111076864