README 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. It has been said that successful communication requires first identifying
  2. what your audience knows and then building a bridge from their current
  3. knowledge to what they need to know. Unfortunately, the expected
  4. Linux-kernel memory model (LKMM) audience might be anywhere from novice
  5. to expert both in kernel hacking and in understanding LKMM.
  6. This document therefore points out a number of places to start reading,
  7. depending on what you know and what you would like to learn. Please note
  8. that the documents later in this list assume that the reader understands
  9. the material provided by documents earlier in this list.
  10. o You are new to Linux-kernel concurrency: simple.txt
  11. o You have some background in Linux-kernel concurrency, and would
  12. like an overview of the types of low-level concurrency primitives
  13. that the Linux kernel provides: ordering.txt
  14. Here, "low level" means atomic operations to single variables.
  15. o You are familiar with the Linux-kernel concurrency primitives
  16. that you need, and just want to get started with LKMM litmus
  17. tests: litmus-tests.txt
  18. o You are familiar with Linux-kernel concurrency, and would
  19. like a detailed intuitive understanding of LKMM, including
  20. situations involving more than two threads: recipes.txt
  21. o You would like a detailed understanding of what your compiler can
  22. and cannot do to control dependencies: control-dependencies.txt
  23. o You are familiar with Linux-kernel concurrency and the use of
  24. LKMM, and would like a quick reference: cheatsheet.txt
  25. o You are familiar with Linux-kernel concurrency and the use
  26. of LKMM, and would like to learn about LKMM's requirements,
  27. rationale, and implementation: explanation.txt
  28. o You are interested in the publications related to LKMM, including
  29. hardware manuals, academic literature, standards-committee
  30. working papers, and LWN articles: references.txt
  31. ====================
  32. DESCRIPTION OF FILES
  33. ====================
  34. README
  35. This file.
  36. cheatsheet.txt
  37. Quick-reference guide to the Linux-kernel memory model.
  38. control-dependencies.txt
  39. Guide to preventing compiler optimizations from destroying
  40. your control dependencies.
  41. explanation.txt
  42. Detailed description of the memory model.
  43. litmus-tests.txt
  44. The format, features, capabilities, and limitations of the litmus
  45. tests that LKMM can evaluate.
  46. ordering.txt
  47. Overview of the Linux kernel's low-level memory-ordering
  48. primitives by category.
  49. recipes.txt
  50. Common memory-ordering patterns.
  51. references.txt
  52. Background information.
  53. simple.txt
  54. Starting point for someone new to Linux-kernel concurrency.
  55. And also a reminder of the simpler approaches to concurrency!