Author :
Tian, Chen ; Waddington, Daniel ; Kuang, Jilong
Abstract :
L4 microkernel family has become very successful on mobile devices. However, with the rapid shift from uniprocessor to multicore and manycore processor, many critical OS functions including physical memory allocator (PMA) must be re-designed in order to achieve better system throughput. While research and engineering efforts have been made for PMA in monolithic kernels such as Linux, not much work can be found for L4 microkernels. Due to the the design difference, the PMA in L4 microkernels is part of user level page fault handler (a.k.a. pager), which is executed as a stand-alone server in the least privilege mode. Memory allocation and free requests are handled through inter-process communication (IPC) rather than normal system or kernel function calls. In this work, we first study the scalability issue of the PMA implementation in L4 microkernels, and propose our solution in the context of Fiasco.OC, a state-of-the-art L4 microkernel implementation. We also discuss how to leverage the L4 microkernel design advantages to implement a PMA with more advanced features, such as load balancing, customizability and NUMA-awareness. Finally, we conduct experiments to verify the scalability result of our solution. The experiment is conducted on a 48-core AMD magny-cours server.
Keywords :
Linux; memory architecture; multiprocessing systems; resource allocation; 48-core AMD magny-cours server; IPC; L4 microkernel family; NUMA-awareness; OS functions; PMA implementa- tion; interprocess communication; kernel function calls; least privilege mode; manycore processor; mobile devices; monolithic kernels; multicore processor; scalable physical memory allocation scheme; stand-alone server; uniprocessor; user level page fault handler; Kernel; Linux; Load management; Memory management; Resource management; Scalability; Servers; memory allocation; microkernel; multicore processor;