Commit 1404f292 authored by Jonathan Corbet's avatar Jonathan Corbet

Merge branch 'fp' into docs-mw

The top-level index.rst file is the entry point for the kernel's
documentation, especially for readers of the HTML output.  It is currently
a mess containing everything we thought to throw in there.  Firefox says it
would require 26 pages of paper to print it.  That is not a user-friendly
introduction.

This series aims to improve our documentation entry point with a focus on
rewriting index.rst.  The result is, IMO, simpler and more approachable.
For anybody who wants to see the rendered results without building the
docs, have a look at:

  https://static.lwn.net/kerneldoc/

This time around I've rendered the pages using the "Read The Docs" theme,
since that's what everybody will get by default.  That theme ignores the
directives regarding the left column, so the results are not as good there.
I have a series proposing a default-theme change in the works, but that's a
separate topic.

This is only a beginning; I think this kind of organizational effort has to
be pushed down into the lower layers of the docs tree itself.  But one has
to start somewhere.
parents 49beeea7 48987606
...@@ -369,7 +369,8 @@ html_static_path = ['sphinx-static'] ...@@ -369,7 +369,8 @@ html_static_path = ['sphinx-static']
html_use_smartypants = False html_use_smartypants = False
# Custom sidebar templates, maps document names to template names. # Custom sidebar templates, maps document names to template names.
#html_sidebars = {} # Note that the RTD theme ignores this.
html_sidebars = { '**': ['searchbox.html', 'localtoc.html', 'sourcelink.html']}
# Additional templates that should be rendered to pages, maps page names to # Additional templates that should be rendered to pages, maps page names to
# template names. # template names.
......
...@@ -43,10 +43,11 @@ annotated objects like this, tools can be run on them to generate more useful ...@@ -43,10 +43,11 @@ annotated objects like this, tools can be run on them to generate more useful
information. In particular, on properly annotated objects, ``objtool`` can be information. In particular, on properly annotated objects, ``objtool`` can be
run to check and fix the object if needed. Currently, ``objtool`` can report run to check and fix the object if needed. Currently, ``objtool`` can report
missing frame pointer setup/destruction in functions. It can also missing frame pointer setup/destruction in functions. It can also
automatically generate annotations for :doc:`ORC unwinder <x86/orc-unwinder>` automatically generate annotations for the ORC unwinder
(Documentation/x86/orc-unwinder.rst)
for most code. Both of these are especially important to support reliable for most code. Both of these are especially important to support reliable
stack traces which are in turn necessary for :doc:`Kernel live patching stack traces which are in turn necessary for kernel live patching
<livepatch/livepatch>`. (Documentation/livepatch/livepatch.rst).
Caveat and Discussion Caveat and Discussion
--------------------- ---------------------
......
...@@ -23,6 +23,7 @@ it. ...@@ -23,6 +23,7 @@ it.
printk-formats printk-formats
printk-index printk-index
symbol-namespaces symbol-namespaces
asm-annotations
Data structures and low-level utilities Data structures and low-level utilities
======================================= =======================================
...@@ -44,6 +45,8 @@ Library functionality that is used throughout the kernel. ...@@ -44,6 +45,8 @@ Library functionality that is used throughout the kernel.
this_cpu_ops this_cpu_ops
timekeeping timekeeping
errseq errseq
wrappers/atomic_t
wrappers/atomic_bitops
Low level entry and exit Low level entry and exit
======================== ========================
...@@ -67,6 +70,7 @@ Documentation/locking/index.rst for more related documentation. ...@@ -67,6 +70,7 @@ Documentation/locking/index.rst for more related documentation.
local_ops local_ops
padata padata
../RCU/index ../RCU/index
wrappers/memory-barriers.rst
Low-level hardware management Low-level hardware management
============================= =============================
......
.. SPDX-License-Identifier: GPL-2.0
This is a simple wrapper to bring atomic_bitops.txt into the RST world
until such a time as that file can be converted directly.
=============
Atomic bitops
=============
.. raw:: latex
\footnotesize
.. include:: ../../atomic_bitops.txt
:literal:
.. raw:: latex
\normalsize
.. SPDX-License-Identifier: GPL-2.0
This is a simple wrapper to bring atomic_t.txt into the RST world
until such a time as that file can be converted directly.
============
Atomic types
============
.. raw:: latex
\footnotesize
.. include:: ../../atomic_t.txt
:literal:
.. raw:: latex
\normalsize
.. SPDX-License-Identifier: GPL-2.0
This is a simple wrapper to bring memory-barriers.txt into the RST world
until such a time as that file can be converted directly.
============================
Linux kernel memory barriers
============================
.. raw:: latex
\footnotesize
.. include:: ../../memory-barriers.txt
:literal:
.. raw:: latex
\normalsize
.. SPDX-License-Identifier: GPL-2.0 .. SPDX-License-Identifier: GPL-2.0
.. The Linux Kernel documentation master file, created by
sphinx-quickstart on Fri Feb 12 13:51:46 2016.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
.. _linux_doc: .. _linux_doc:
The Linux Kernel documentation The Linux Kernel documentation
...@@ -18,133 +12,84 @@ documents into a coherent whole. Please note that improvements to the ...@@ -18,133 +12,84 @@ documents into a coherent whole. Please note that improvements to the
documentation are welcome; join the linux-doc list at vger.kernel.org if documentation are welcome; join the linux-doc list at vger.kernel.org if
you want to help out. you want to help out.
Licensing documentation Working with the development community
----------------------- --------------------------------------
The following describes the license of the Linux kernel source code The essential guides for interacting with the kernel's development
(GPLv2), how to properly mark the license of individual files in the source community and getting your work upstream.
tree, as well as links to the full license text.
* :ref:`kernel_licensing`
User-oriented documentation
---------------------------
The following manuals are written for *users* of the kernel — those who are
trying to get it to work optimally on a given system.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
admin-guide/index
kbuild/index
Firmware-related documentation
------------------------------
The following holds information on the kernel's expectations regarding the
platform firmwares.
.. toctree:: process/development-process
:maxdepth: 2 process/submitting-patches
Code of conduct <process/code-of-conduct>
maintainer/index
All development-process docs <process/index>
firmware-guide/index
devicetree/index
Application-developer documentation Internal API manuals
----------------------------------- --------------------
The user-space API manual gathers together documents describing aspects of Manuals for use by developers working to interface with the rest of the
the kernel interface as seen by application developers. kernel.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
userspace-api/index
core-api/index
driver-api/index
subsystem-apis
Locking in the kernel <locking/index>
Introduction to kernel development Development tools and processes
---------------------------------- -------------------------------
These manuals contain overall information about how to develop the kernel. Various other manuals with useful information for all kernel developers.
The kernel community is quite large, with thousands of developers
contributing over the course of a year. As with any large community,
knowing how things are done will make the process of getting your changes
merged much easier.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
process/index process/license-rules
dev-tools/index
doc-guide/index doc-guide/index
dev-tools/index
dev-tools/testing-overview
kernel-hacking/index kernel-hacking/index
trace/index trace/index
maintainer/index
fault-injection/index fault-injection/index
livepatch/index livepatch/index
Kernel API documentation User-oriented documentation
------------------------ ---------------------------
These books get into the details of how specific kernel subsystems work The following manuals are written for *users* of the kernel — those who are
from the point of view of a kernel developer. Much of the information here trying to get it to work optimally on a given system and application
is taken directly from the kernel source, with supplemental material added developers seeking information on the kernel's user-space APIs.
as needed (or at least as we managed to add it — probably *not* all that is
needed).
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
driver-api/index admin-guide/index
core-api/index The kernel build system <kbuild/index>
locking/index admin-guide/reporting-issues.rst
accounting/index User-space tools <tools/index>
block/index userspace-api/index
cdrom/index
cpu-freq/index See also: the `Linux man pages <https://www.kernel.org/doc/man-pages/>`_,
fb/index which are kept separately from the kernel's own documentation.
fpga/index
hid/index Firmware-related documentation
i2c/index ------------------------------
iio/index The following holds information on the kernel's expectations regarding the
isdn/index platform firmwares.
infiniband/index
leds/index
netlabel/index
networking/index
pcmcia/index
power/index
target/index
timers/index
spi/index
w1/index
watchdog/index
virt/index
input/index
hwmon/index
gpu/index
security/index
sound/index
crypto/index
filesystems/index
mm/index
bpf/index
usb/index
PCI/index
scsi/index
misc-devices/index
scheduler/index
mhi/index
peci/index
Architecture-agnostic documentation
-----------------------------------
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
firmware-guide/index
devicetree/index
asm-annotations
Architecture-specific documentation Architecture-specific documentation
----------------------------------- -----------------------------------
...@@ -163,9 +108,8 @@ of the documentation body, or may require some adjustments and/or conversion ...@@ -163,9 +108,8 @@ of the documentation body, or may require some adjustments and/or conversion
to ReStructured Text format, or are simply too old. to ReStructured Text format, or are simply too old.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
tools/index
staging/index staging/index
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
.. _process_index: .. _process_index:
=============================================
Working with the kernel development community Working with the kernel development community
============================================= =============================================
......
...@@ -14,45 +14,3 @@ Unsorted Documentation ...@@ -14,45 +14,3 @@ Unsorted Documentation
static-keys static-keys
tee tee
xz xz
Atomic Types
============
.. raw:: latex
\footnotesize
.. include:: ../atomic_t.txt
:literal:
.. raw:: latex
\normalsize
Atomic bitops
=============
.. raw:: latex
\footnotesize
.. include:: ../atomic_bitops.txt
:literal:
.. raw:: latex
\normalsize
Memory Barriers
===============
.. raw:: latex
\footnotesize
.. include:: ../memory-barriers.txt
:literal:
.. raw:: latex
\normalsize
.. SPDX-License-Identifier: GPL-2.0
==============================
Kernel subsystem documentation
==============================
These books get into the details of how specific kernel subsystems work
from the point of view of a kernel developer. Much of the information here
is taken directly from the kernel source, with supplemental material added
as needed (or at least as we managed to add it — probably *not* all that is
needed).
**Fixme**: much more organizational work is needed here.
.. toctree::
:maxdepth: 1
driver-api/index
core-api/index
locking/index
accounting/index
block/index
cdrom/index
cpu-freq/index
fb/index
fpga/index
hid/index
i2c/index
iio/index
isdn/index
infiniband/index
leds/index
netlabel/index
networking/index
pcmcia/index
power/index
target/index
timers/index
spi/index
w1/index
watchdog/index
virt/index
input/index
hwmon/index
gpu/index
security/index
sound/index
crypto/index
filesystems/index
mm/index
bpf/index
usb/index
PCI/index
scsi/index
misc-devices/index
scheduler/index
mhi/index
peci/index
...@@ -3751,7 +3751,7 @@ sub process { ...@@ -3751,7 +3751,7 @@ sub process {
if ($realfile =~ /\.S$/ && if ($realfile =~ /\.S$/ &&
$line =~ /^\+\s*(?:[A-Z]+_)?SYM_[A-Z]+_(?:START|END)(?:_[A-Z_]+)?\s*\(\s*\.L/) { $line =~ /^\+\s*(?:[A-Z]+_)?SYM_[A-Z]+_(?:START|END)(?:_[A-Z_]+)?\s*\(\s*\.L/) {
WARN("AVOID_L_PREFIX", WARN("AVOID_L_PREFIX",
"Avoid using '.L' prefixed local symbol names for denoting a range of code via 'SYM_*_START/END' annotations; see Documentation/asm-annotations.rst\n" . $herecurr); "Avoid using '.L' prefixed local symbol names for denoting a range of code via 'SYM_*_START/END' annotations; see Documentation/core-api/asm-annotations.rst\n" . $herecurr);
} }
# check we are in a valid source file C or perl if not then ignore this hunk # check we are in a valid source file C or perl if not then ignore this hunk
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment