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.

access-marking.txt
	Guidelines for marking intentionally concurrent accesses to
	shared memory.

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!
