xref: /openbmc/linux/tools/memory-model/Documentation/README (revision ab8bcad67bee82e4be290b32f0faaf582d7c3edc)
1*ab8bcad6SPaul E. McKenneyIt has been said that successful communication requires first identifying
2*ab8bcad6SPaul E. McKenneywhat your audience knows and then building a bridge from their current
3*ab8bcad6SPaul E. McKenneyknowledge to what they need to know.  Unfortunately, the expected
4*ab8bcad6SPaul E. McKenneyLinux-kernel memory model (LKMM) audience might be anywhere from novice
5*ab8bcad6SPaul E. McKenneyto expert both in kernel hacking and in understanding LKMM.
6*ab8bcad6SPaul E. McKenney
7*ab8bcad6SPaul E. McKenneyThis document therefore points out a number of places to start reading,
8*ab8bcad6SPaul E. McKenneydepending on what you know and what you would like to learn.  Please note
9*ab8bcad6SPaul E. McKenneythat the documents later in this list assume that the reader understands
10*ab8bcad6SPaul E. McKenneythe material provided by documents earlier in this list.
11*ab8bcad6SPaul E. McKenney
12*ab8bcad6SPaul E. McKenneyo	You are new to Linux-kernel concurrency: simple.txt
13*ab8bcad6SPaul E. McKenney
14*ab8bcad6SPaul E. McKenneyo	You are familiar with the Linux-kernel concurrency primitives
15*ab8bcad6SPaul E. McKenney	that you need, and just want to get started with LKMM litmus
16*ab8bcad6SPaul E. McKenney	tests:  litmus-tests.txt
17*ab8bcad6SPaul E. McKenney
18*ab8bcad6SPaul E. McKenneyo	You are familiar with Linux-kernel concurrency, and would
19*ab8bcad6SPaul E. McKenney	like a detailed intuitive understanding of LKMM, including
20*ab8bcad6SPaul E. McKenney	situations involving more than two threads:  recipes.txt
21*ab8bcad6SPaul E. McKenney
22*ab8bcad6SPaul E. McKenneyo	You are familiar with Linux-kernel concurrency and the use of
23*ab8bcad6SPaul E. McKenney	LKMM, and would like a quick reference:  cheatsheet.txt
24*ab8bcad6SPaul E. McKenney
25*ab8bcad6SPaul E. McKenneyo	You are familiar with Linux-kernel concurrency and the use
26*ab8bcad6SPaul E. McKenney	of LKMM, and would like to learn about LKMM's requirements,
27*ab8bcad6SPaul E. McKenney	rationale, and implementation:	explanation.txt
28*ab8bcad6SPaul E. McKenney
29*ab8bcad6SPaul E. McKenneyo	You are interested in the publications related to LKMM, including
30*ab8bcad6SPaul E. McKenney	hardware manuals, academic literature, standards-committee
31*ab8bcad6SPaul E. McKenney	working papers, and LWN articles:  references.txt
32*ab8bcad6SPaul E. McKenney
33*ab8bcad6SPaul E. McKenney
34*ab8bcad6SPaul E. McKenney====================
35*ab8bcad6SPaul E. McKenneyDESCRIPTION OF FILES
36*ab8bcad6SPaul E. McKenney====================
37*ab8bcad6SPaul E. McKenney
38*ab8bcad6SPaul E. McKenneyREADME
39*ab8bcad6SPaul E. McKenney	This file.
40*ab8bcad6SPaul E. McKenney
41*ab8bcad6SPaul E. McKenneycheatsheet.txt
42*ab8bcad6SPaul E. McKenney	Quick-reference guide to the Linux-kernel memory model.
43*ab8bcad6SPaul E. McKenney
44*ab8bcad6SPaul E. McKenneyexplanation.txt
45*ab8bcad6SPaul E. McKenney	Detailed description of the memory model.
46*ab8bcad6SPaul E. McKenney
47*ab8bcad6SPaul E. McKenneylitmus-tests.txt
48*ab8bcad6SPaul E. McKenney	The format, features, capabilities, and limitations of the litmus
49*ab8bcad6SPaul E. McKenney	tests that LKMM can evaluate.
50*ab8bcad6SPaul E. McKenney
51*ab8bcad6SPaul E. McKenneyrecipes.txt
52*ab8bcad6SPaul E. McKenney	Common memory-ordering patterns.
53*ab8bcad6SPaul E. McKenney
54*ab8bcad6SPaul E. McKenneyreferences.txt
55*ab8bcad6SPaul E. McKenney	Background information.
56*ab8bcad6SPaul E. McKenney
57*ab8bcad6SPaul E. McKenneysimple.txt
58*ab8bcad6SPaul E. McKenney	Starting point for someone new to Linux-kernel concurrency.
59*ab8bcad6SPaul E. McKenney	And also a reminder of the simpler approaches to concurrency!
60