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