12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- It has been said that successful communication requires first identifying
- what your audience knows and then building a bridge from their current
- knowledge to what they need to know. Unfortunately, the expected
- Linux-kernel memory model (LKMM) audience might be anywhere from novice
- to expert both in kernel hacking and in understanding LKMM.
- This document therefore points out a number of places to start reading,
- depending on what you know and what you would like to learn. Please note
- that the documents later in this list assume that the reader understands
- the material provided by documents earlier in this list.
- o You are new to Linux-kernel concurrency: simple.txt
- o You have some background in Linux-kernel concurrency, and would
- like an overview of the types of low-level concurrency primitives
- that the Linux kernel provides: ordering.txt
- Here, "low level" means atomic operations to single variables.
- o You are familiar with the Linux-kernel concurrency primitives
- that you need, and just want to get started with LKMM litmus
- tests: litmus-tests.txt
- o You are familiar with Linux-kernel concurrency, and would
- like a detailed intuitive understanding of LKMM, including
- situations involving more than two threads: recipes.txt
- o You would like a detailed understanding of what your compiler can
- and cannot do to control dependencies: control-dependencies.txt
- o You are familiar with Linux-kernel concurrency and the use of
- LKMM, and would like a quick reference: cheatsheet.txt
- o You are familiar with Linux-kernel concurrency and the use
- of LKMM, and would like to learn about LKMM's requirements,
- rationale, and implementation: explanation.txt
- o You are interested in the publications related to LKMM, including
- hardware manuals, academic literature, standards-committee
- working papers, and LWN articles: references.txt
- ====================
- DESCRIPTION OF FILES
- ====================
- README
- This file.
- cheatsheet.txt
- Quick-reference guide to the Linux-kernel memory model.
- control-dependencies.txt
- Guide to preventing compiler optimizations from destroying
- your control dependencies.
- explanation.txt
- Detailed description of the memory model.
- litmus-tests.txt
- The format, features, capabilities, and limitations of the litmus
- tests that LKMM can evaluate.
- ordering.txt
- Overview of the Linux kernel's low-level memory-ordering
- primitives by category.
- recipes.txt
- Common memory-ordering patterns.
- references.txt
- Background information.
- simple.txt
- Starting point for someone new to Linux-kernel concurrency.
- And also a reminder of the simpler approaches to concurrency!
|