ABSTRACT
It is well-established that high-end scalability requires fine-grained locking, and for a system like Linux, a big lock degrades performance even at moderate core counts. Nevertheless, we argue that a big lock may be fine-grained enough for a microkernel designed to run on closely-coupled cores (sharing a cache), as with the short system calls typical for a well-designed microkernel, lock contention remains low under realistic loads.
- AMBA Level 2 Cache Controller (L2C-310) Technical Reference Manual. ARM Ltd., r3p1 edition, 2010. ARM DDI 0246E.Google Scholar
- Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, and Akhilesh Singhania. The multikernel: A new OS architecture for scalable multicore systems. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles, Big Sky, MT, US, October 2009. Google ScholarDigital Library
- Silas Boyd-Wickizer, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich. Non-scalable locks are dangerous. In Proceedings of the 2012 Ottawa Linux Symposium, Ottawa, CA, July 2012.Google Scholar
- Bryan Cantrill and Jeff Bonwick. Real-world concurrency. ACM Queue, 6(5), September 2008. Google ScholarDigital Library
- Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, and Eddie Kohler. The scalable commutativity rule: Designing scalable software for multicore processors. In ACM Symposium on Operating Systems Principles, pages 1--17, Farmington, PA, US, October 2013. Google ScholarDigital Library
- Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. Benchmarking cloud serving systems with YCSB. Indianapolis, IN, US, June 2010.Google Scholar
- J. Corbet. Big reader locks. http://lwn.net/Articles/378911/.Google Scholar
- Travis S. Craig. Building FIFO and priority-queuing spin locks from atomic swap. Technical Report UW-CSE-93-02-02, Department of Computer Science and Engineering, University of Washington, 1993.Google Scholar
- Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. Everything you always wanted to know about synchronization but were afraid to ask. In ACM Symposium on Operating Systems Principles, pages 33--48, Farmington, PA, US, November 2013. Google ScholarDigital Library
- Kevin Elphinstone and Gernot Heiser. From L3 to seL4 -- what have we learnt in 20 years of L4 microkernels? In ACM Symposium on Operating Systems Principles, pages 133--150, Farmington, PA, USA, November 2013. Google ScholarDigital Library
- Freescale. i.MX 6Dual/6Quad Applications Processor Reference Manual, rev. 1 edition, April 2013.Google Scholar
- Patrice Godefroid and Nachiappan Nagappan. Concurrency at Microsoft -- an exploratory survey. In CAV Workshop on Exploiting Concurrency Efficiently and Correctly, Princeton, NJ, US, July 2008.Google Scholar
- Andi Kleen. RFC: Kernel lock elision for TSX. https://lkml.org/lkml/2013/3/22/630.Google Scholar
- Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch, and Simon Winwood. seL4: Formal verification of an OS kernel. In ACM Symposium on Operating Systems Principles, pages 207--220, Big Sky, MT, USA, October 2009. Google ScholarDigital Library
- Gerwin Klein, June Andronick, Kevin Elphinstone, Toby Murray, Thomas Sewell, Rafal Kolanski, and Gernot Heiser. Comprehensive formal verification of an OS microkernel. ACM Transactions on Computer Systems, 32(1):2:1--2:70, February 2014. Google ScholarDigital Library
- Greg Lehey. Improving the FreeBSD SMP implementation. In Proceedings of the 2001 USENIX Annual Technical Conference, FREENIX Track, Boston, MA, US, June 2001. Google ScholarDigital Library
- Jochen Liedtke, Kevin Elphinstone, Sebastian Schönberg, Herrman Härtig, Gernot Heiser, Nayeem Islam, and Trent Jaeger. Achieved IPC performance (still the foundation for extensibility). In Proceedings of the 6th Workshop on Hot Topics in Operating Systems, pages 28--31, Cape Cod, MA, USA, May 1997. Google ScholarDigital Library
- lwIp. lwIP. http://www.nongnu.org/lwip/.Google Scholar
- Redis. Redis. http://redis.io.Google Scholar
- Christopher J. Rossbach, Owen S. Hofmann, Donald E. Porter, Hany E. Ramadan, Bhandari Aditya, and Emmett Witchel. TxLinux: Using and managing hardware transactional memory in an operating system. In ACM Symposium on Operating Systems Principles, Stevenson, WA, US, October 2007. Google ScholarDigital Library
- Michael von Tessin. The clustered multikernel: An approach to formal verification of multiprocessor OS kernels. In 2nd Workshop on Systems for Future Multi-core Architectures, pages 1--6, Bern, Switzerland, April 2012.Google Scholar
- Michael von Tessin. The Clustered Multikernel: An Approach to Formal Verification of Multiprocessor Operating-System Kernels. PhD thesis, School of Computer Science and Engineering, UNSW, Sydney, Australia, Sydney, Australia, December 2013.Google Scholar
For a Microkernel, a Big Lock Is Fine
Recommendations
Transactional lock-free execution of lock-based programs
Special Issue: Proceedings of the 10th annual conference on Architectural Support for Programming Languages and Operating SystemsThis paper is motivated by the difficulty in writing correct high-performance programs. Writing shared-memory multi-threaded programs imposes a complex trade-off between programming ease and performance, largely due to subtleties in coordinating access ...
Transactional lock-free execution of lock-based programs
This paper is motivated by the difficulty in writing correct high-performance programs. Writing shared-memory multi-threaded programs imposes a complex trade-off between programming ease and performance, largely due to subtleties in coordinating access ...
Comments