Skip to content

Commit

Permalink
Merge tag 'docs-4.16' of git://git.lwn.net/linux
Browse files Browse the repository at this point in the history
Pull documentation updates from Jonathan Corbet:
 "Documentation updates for 4.16.

  New stuff includes refcount_t documentation, errseq documentation,
  kernel-doc support for nested structure definitions, the removal of
  lots of crufty kernel-doc support for unused formats, SPDX tag
  documentation, the beginnings of a manual for subsystem maintainers,
  and lots of fixes and updates.

  As usual, some of the changesets reach outside of Documentation/ to
  effect kerneldoc comment fixes. It also adds the new LICENSES
  directory, of which Thomas promises I do not need to be the
  maintainer"

* tag 'docs-4.16' of git://git.lwn.net/linux: (65 commits)
  linux-next: docs-rst: Fix typos in kfigure.py
  linux-next: DOC: HWPOISON: Fix path to debugfs in hwpoison.txt
  Documentation: Fix misconversion of #if
  docs: add index entry for networking/msg_zerocopy
  Documentation: security/credentials.rst: explain need to sort group_list
  LICENSES: Add MPL-1.1 license
  LICENSES: Add the GPL 1.0 license
  LICENSES: Add Linux syscall note exception
  LICENSES: Add the MIT license
  LICENSES: Add the BSD-3-clause "Clear" license
  LICENSES: Add the BSD 3-clause "New" or "Revised" License
  LICENSES: Add the BSD 2-clause "Simplified" license
  LICENSES: Add the LGPL-2.1 license
  LICENSES: Add the LGPL 2.0 license
  LICENSES: Add the GPL 2.0 license
  Documentation: Add license-rules.rst to describe how to properly identify file licenses
  scripts: kernel_doc: better handle show warnings logic
  fs/*/Kconfig: drop links to 404-compliant http://acl.bestbits.at
  doc: md: Fix a file name to md-fault.c in fault-injection.txt
  errseq: Add to documentation tree
  ...
  • Loading branch information
torvalds committed Feb 1, 2018
2 parents d76e0a0 + ae17a87 commit 255442c
Show file tree
Hide file tree
Showing 67 changed files with 3,887 additions and 2,006 deletions.
4 changes: 0 additions & 4 deletions Documentation/00-INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,6 @@ isdn/
- directory with info on the Linux ISDN support, and supported cards.
kbuild/
- directory with info about the kernel build process.
kernel-doc-nano-HOWTO.txt
- outdated info about kernel-doc documentation.
kdump/
- directory with mini HowTo on getting the crash dump code to work.
doc-guide/
Expand Down Expand Up @@ -346,8 +344,6 @@ prctl/
- directory with info on the priveledge control subsystem
preempt-locking.txt
- info on locking under a preemptive kernel.
printk-formats.txt
- how to get printk format specifiers right
process/
- how to work with the mainline kernel development process.
pps/
Expand Down
3 changes: 3 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2538,6 +2538,9 @@
This is useful when you use a panic=... timeout and
need the box quickly up again.

These settings can be accessed at runtime via
the nmi_watchdog and hardlockup_panic sysctls.

netpoll.carrier_timeout=
[NET] Specifies amount of time (in seconds) that
netpoll should wait for a carrier. By default netpoll
Expand Down
6 changes: 3 additions & 3 deletions Documentation/admin-guide/mono.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ This will allow you to execute Mono-based .NET binaries just like any
other program after you have done the following:

1) You MUST FIRST install the Mono CLR support, either by downloading
a binary package, a source tarball or by installing from CVS. Binary
a binary package, a source tarball or by installing from Git. Binary
packages for several distributions can be found at:

http://go-mono.com/download.html
http://www.mono-project.com/download/

Instructions for compiling Mono can be found at:

http://www.go-mono.com/compiling.html
http://www.mono-project.com/docs/compiling-mono/linux/

Once the Mono CLR support has been installed, just check that
``/usr/bin/mono`` (which could be located elsewhere, for example
Expand Down
1 change: 0 additions & 1 deletion Documentation/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@
if makefile_version and makefile_patchlevel:
version = release = makefile_version + '.' + makefile_patchlevel
else:
sys.stderr.write('Warning: Could not extract kernel version\n')
version = release = "unknown version"

# The language for content autogenerated by Sphinx. Refer to documentation
Expand Down
20 changes: 15 additions & 5 deletions Documentation/errseq.rst → Documentation/core-api/errseq.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
=====================
The errseq_t datatype
=====================

An errseq_t is a way of recording errors in one place, and allowing any
number of "subscribers" to tell whether it has changed since a previous
point where it was sampled.
Expand All @@ -21,12 +23,13 @@ a flag to tell whether the value has been sampled since a new value was
recorded. That allows us to avoid bumping the counter if no one has
sampled it since the last time an error was recorded.

Thus we end up with a value that looks something like this::
Thus we end up with a value that looks something like this:

bit: 31..13 12 11..0
+-----------------+----+----------------+
| counter | SF | errno |
+-----------------+----+----------------+
+--------------------------------------+----+------------------------+
| 31..13 | 12 | 11..0 |
+--------------------------------------+----+------------------------+
| counter | SF | errno |
+--------------------------------------+----+------------------------+

The general idea is for "watchers" to sample an errseq_t value and keep
it as a running cursor. That value can later be used to tell whether
Expand All @@ -42,6 +45,7 @@ has ever been an error set since it was first initialized.

API usage
=========

Let me tell you a story about a worker drone. Now, he's a good worker
overall, but the company is a little...management heavy. He has to
report to 77 supervisors today, and tomorrow the "big boss" is coming in
Expand Down Expand Up @@ -125,6 +129,7 @@ not usable by anyone else.

Serializing errseq_t cursor updates
===================================

Note that the errseq_t API does not protect the errseq_t cursor during a
check_and_advance_operation. Only the canonical error code is handled
atomically. In a situation where more than one task might be using the
Expand All @@ -147,3 +152,8 @@ errseq_check_and_advance after taking the lock. e.g.::

That avoids the spinlock in the common case where nothing has changed
since the last time it was checked.

Functions
=========

.. kernel-doc:: lib/errseq.c
3 changes: 3 additions & 0 deletions Documentation/core-api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@ Core utilities
kernel-api
assoc_array
atomic_ops
refcount-vs-atomic
cpu_hotplug
local_ops
workqueue
genericirq
flexible-arrays
librs
genalloc
errseq
printk-formats

Interfaces for kernel debugging
===============================
Expand Down
15 changes: 15 additions & 0 deletions Documentation/core-api/kernel-api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,21 @@ Division Functions
.. kernel-doc:: lib/gcd.c
:export:

Sorting
-------

.. kernel-doc:: lib/sort.c
:export:

.. kernel-doc:: lib/list_sort.c
:export:

UUID/GUID
---------

.. kernel-doc:: lib/uuid.c
:export:

Memory Management in Linux
==========================

Expand Down
Loading

0 comments on commit 255442c

Please sign in to comment.