77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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!
 |