Back to home page

OSCL-LXR

 
 

    


0001 It has been said that successful communication requires first identifying
0002 what your audience knows and then building a bridge from their current
0003 knowledge to what they need to know.  Unfortunately, the expected
0004 Linux-kernel memory model (LKMM) audience might be anywhere from novice
0005 to expert both in kernel hacking and in understanding LKMM.
0006 
0007 This document therefore points out a number of places to start reading,
0008 depending on what you know and what you would like to learn.  Please note
0009 that the documents later in this list assume that the reader understands
0010 the material provided by documents earlier in this list.
0011 
0012 o       You are new to Linux-kernel concurrency: simple.txt
0013 
0014 o       You have some background in Linux-kernel concurrency, and would
0015         like an overview of the types of low-level concurrency primitives
0016         that the Linux kernel provides:  ordering.txt
0017 
0018         Here, "low level" means atomic operations to single variables.
0019 
0020 o       You are familiar with the Linux-kernel concurrency primitives
0021         that you need, and just want to get started with LKMM litmus
0022         tests:  litmus-tests.txt
0023 
0024 o       You are familiar with Linux-kernel concurrency, and would
0025         like a detailed intuitive understanding of LKMM, including
0026         situations involving more than two threads:  recipes.txt
0027 
0028 o       You would like a detailed understanding of what your compiler can
0029         and cannot do to control dependencies:  control-dependencies.txt
0030 
0031 o       You are familiar with Linux-kernel concurrency and the use of
0032         LKMM, and would like a quick reference:  cheatsheet.txt
0033 
0034 o       You are familiar with Linux-kernel concurrency and the use
0035         of LKMM, and would like to learn about LKMM's requirements,
0036         rationale, and implementation:  explanation.txt
0037 
0038 o       You are interested in the publications related to LKMM, including
0039         hardware manuals, academic literature, standards-committee
0040         working papers, and LWN articles:  references.txt
0041 
0042 
0043 ====================
0044 DESCRIPTION OF FILES
0045 ====================
0046 
0047 README
0048         This file.
0049 
0050 cheatsheet.txt
0051         Quick-reference guide to the Linux-kernel memory model.
0052 
0053 control-dependencies.txt
0054         Guide to preventing compiler optimizations from destroying
0055         your control dependencies.
0056 
0057 explanation.txt
0058         Detailed description of the memory model.
0059 
0060 litmus-tests.txt
0061         The format, features, capabilities, and limitations of the litmus
0062         tests that LKMM can evaluate.
0063 
0064 ordering.txt
0065         Overview of the Linux kernel's low-level memory-ordering
0066         primitives by category.
0067 
0068 recipes.txt
0069         Common memory-ordering patterns.
0070 
0071 references.txt
0072         Background information.
0073 
0074 simple.txt
0075         Starting point for someone new to Linux-kernel concurrency.
0076         And also a reminder of the simpler approaches to concurrency!