Commit c309b6f2 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'docs/v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull rst conversion of docs from Mauro Carvalho Chehab:
 "As agreed with Jon, I'm sending this big series directly to you, c/c
  him, as this series required a special care, in order to avoid
  conflicts with other trees"

* tag 'docs/v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (77 commits)
  docs: kbuild: fix build with pdf and fix some minor issues
  docs: block: fix pdf output
  docs: arm: fix a breakage with pdf output
  docs: don't use nested tables
  docs: gpio: add sysfs interface to the admin-guide
  docs: locking: add it to the main index
  docs: add some directories to the main documentation index
  docs: add SPDX tags to new index files
  docs: add a memory-devices subdir to driver-api
  docs: phy: place documentation under driver-api
  docs: serial: move it to the driver-api
  docs: driver-api: add remaining converted dirs to it
  docs: driver-api: add xilinx driver API documentation
  docs: driver-api: add a series of orphaned documents
  docs: admin-guide: add a series of orphaned documents
  docs: cgroup-v1: add it to the admin-guide book
  docs: aoe: add it to the driver-api book
  docs: add some documentation dirs to the driver-api book
  docs: driver-model: move it to the driver-api book
  docs: lp855x-driver.rst: add it to the driver-api book
  ...
parents 3e859477 16886949
...@@ -3120,7 +3120,7 @@ S: France ...@@ -3120,7 +3120,7 @@ S: France
N: Rik van Riel N: Rik van Riel
E: riel@redhat.com E: riel@redhat.com
W: http://www.surriel.com/ W: http://www.surriel.com/
D: Linux-MM site, Documentation/sysctl/*, swap/mm readaround D: Linux-MM site, Documentation/admin-guide/sysctl/*, swap/mm readaround
D: kswapd fixes, random kernel hacker, rmap VM, D: kswapd fixes, random kernel hacker, rmap VM,
D: nl.linux.org administrator, minor scheduler additions D: nl.linux.org administrator, minor scheduler additions
S: Red Hat Boston S: Red Hat Boston
......
...@@ -11,7 +11,7 @@ Description: ...@@ -11,7 +11,7 @@ Description:
Kernel code may export it for complete or partial access. Kernel code may export it for complete or partial access.
GPIOs are identified as they are inside the kernel, using integers in GPIOs are identified as they are inside the kernel, using integers in
the range 0..INT_MAX. See Documentation/gpio for more information. the range 0..INT_MAX. See Documentation/admin-guide/gpio for more information.
/sys/class/gpio /sys/class/gpio
/export ... asks the kernel to export a GPIO to userspace /export ... asks the kernel to export a GPIO to userspace
......
rfkill - radio frequency (RF) connector kill switch support rfkill - radio frequency (RF) connector kill switch support
For details to this subsystem look at Documentation/rfkill.txt. For details to this subsystem look at Documentation/driver-api/rfkill.rst.
What: /sys/class/rfkill/rfkill[0-9]+/claim What: /sys/class/rfkill/rfkill[0-9]+/claim
Date: 09-Jul-2007 Date: 09-Jul-2007
......
rfkill - radio frequency (RF) connector kill switch support rfkill - radio frequency (RF) connector kill switch support
For details to this subsystem look at Documentation/rfkill.txt. For details to this subsystem look at Documentation/driver-api/rfkill.rst.
For the deprecated /sys/class/rfkill/*/claim knobs of this interface look in For the deprecated /sys/class/rfkill/*/claim knobs of this interface look in
Documentation/ABI/removed/sysfs-class-rfkill. Documentation/ABI/removed/sysfs-class-rfkill.
......
...@@ -61,7 +61,7 @@ Date: October 2002 ...@@ -61,7 +61,7 @@ Date: October 2002
Contact: Linux Memory Management list <linux-mm@kvack.org> Contact: Linux Memory Management list <linux-mm@kvack.org>
Description: Description:
The node's hit/miss statistics, in units of pages. The node's hit/miss statistics, in units of pages.
See Documentation/numastat.txt See Documentation/admin-guide/numastat.rst
What: /sys/devices/system/node/nodeX/distance What: /sys/devices/system/node/nodeX/distance
Date: October 2002 Date: October 2002
......
...@@ -29,4 +29,4 @@ Description: ...@@ -29,4 +29,4 @@ Description:
17 - sectors discarded 17 - sectors discarded
18 - time spent discarding 18 - time spent discarding
For more details refer to Documentation/iostats.txt For more details refer to Documentation/admin-guide/iostats.rst
...@@ -15,7 +15,7 @@ Description: ...@@ -15,7 +15,7 @@ Description:
9 - I/Os currently in progress 9 - I/Os currently in progress
10 - time spent doing I/Os (ms) 10 - time spent doing I/Os (ms)
11 - weighted time spent doing I/Os (ms) 11 - weighted time spent doing I/Os (ms)
For more details refer Documentation/iostats.txt For more details refer Documentation/admin-guide/iostats.rst
What: /sys/block/<disk>/<part>/stat What: /sys/block/<disk>/<part>/stat
......
...@@ -45,7 +45,7 @@ Description: ...@@ -45,7 +45,7 @@ Description:
- Values below -2 are rejected with -EINVAL - Values below -2 are rejected with -EINVAL
For more information, see For more information, see
Documentation/laptops/disk-shock-protection.txt Documentation/admin-guide/laptops/disk-shock-protection.rst
What: /sys/block/*/device/ncq_prio_enable What: /sys/block/*/device/ncq_prio_enable
......
switchtec - Microsemi Switchtec PCI Switch Management Endpoint switchtec - Microsemi Switchtec PCI Switch Management Endpoint
For details on this subsystem look at Documentation/switchtec.txt. For details on this subsystem look at Documentation/driver-api/switchtec.rst.
What: /sys/class/switchtec What: /sys/class/switchtec
Date: 05-Jan-2017 Date: 05-Jan-2017
......
...@@ -34,7 +34,7 @@ Description: CPU topology files that describe kernel limits related to ...@@ -34,7 +34,7 @@ Description: CPU topology files that describe kernel limits related to
present: cpus that have been identified as being present in present: cpus that have been identified as being present in
the system. the system.
See Documentation/cputopology.txt for more information. See Documentation/admin-guide/cputopology.rst for more information.
What: /sys/devices/system/cpu/probe What: /sys/devices/system/cpu/probe
...@@ -103,7 +103,7 @@ Description: CPU topology files that describe a logical CPU's relationship ...@@ -103,7 +103,7 @@ Description: CPU topology files that describe a logical CPU's relationship
thread_siblings_list: human-readable list of cpu#'s hardware thread_siblings_list: human-readable list of cpu#'s hardware
threads within the same core as cpu# threads within the same core as cpu#
See Documentation/cputopology.txt for more information. See Documentation/admin-guide/cputopology.rst for more information.
What: /sys/devices/system/cpu/cpuidle/current_driver What: /sys/devices/system/cpu/cpuidle/current_driver
......
...@@ -31,7 +31,7 @@ Description: ...@@ -31,7 +31,7 @@ Description:
To control the LED display, use the following : To control the LED display, use the following :
echo 0x0T000DDD > /sys/devices/platform/asus_laptop/ echo 0x0T000DDD > /sys/devices/platform/asus_laptop/
where T control the 3 letters display, and DDD the 3 digits display. where T control the 3 letters display, and DDD the 3 digits display.
The DDD table can be found in Documentation/laptops/asus-laptop.txt The DDD table can be found in Documentation/admin-guide/laptops/asus-laptop.rst
What: /sys/devices/platform/asus_laptop/bluetooth What: /sys/devices/platform/asus_laptop/bluetooth
Date: January 2007 Date: January 2007
......
...@@ -212,7 +212,7 @@ The standard 64-bit addressing device would do something like this:: ...@@ -212,7 +212,7 @@ The standard 64-bit addressing device would do something like this::
If the device only supports 32-bit addressing for descriptors in the If the device only supports 32-bit addressing for descriptors in the
coherent allocations, but supports full 64-bits for streaming mappings coherent allocations, but supports full 64-bits for streaming mappings
it would look like this: it would look like this::
if (dma_set_mask(dev, DMA_BIT_MASK(64))) { if (dma_set_mask(dev, DMA_BIT_MASK(64))) {
dev_warn(dev, "mydev: No suitable DMA available\n"); dev_warn(dev, "mydev: No suitable DMA available\n");
......
==================
Control Groupstats
==================
Control Groupstats is inspired by the discussion at Control Groupstats is inspired by the discussion at
http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics as http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics as
suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263. suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.
...@@ -19,9 +23,9 @@ about tasks blocked on I/O. If CONFIG_TASK_DELAY_ACCT is disabled, this ...@@ -19,9 +23,9 @@ about tasks blocked on I/O. If CONFIG_TASK_DELAY_ACCT is disabled, this
information will not be available. information will not be available.
To extract cgroup statistics a utility very similar to getdelays.c To extract cgroup statistics a utility very similar to getdelays.c
has been developed, the sample output of the utility is shown below has been developed, the sample output of the utility is shown below::
~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup/a" ~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup/a"
sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0 sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0
~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup" ~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup"
sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2 sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2
================
Delay accounting Delay accounting
---------------- ================
Tasks encounter delays in execution when they wait Tasks encounter delays in execution when they wait
for some kernel resource to become available e.g. a for some kernel resource to become available e.g. a
...@@ -39,7 +40,9 @@ in detail in a separate document in this directory. Taskstats returns a ...@@ -39,7 +40,9 @@ in detail in a separate document in this directory. Taskstats returns a
generic data structure to userspace corresponding to per-pid and per-tgid generic data structure to userspace corresponding to per-pid and per-tgid
statistics. The delay accounting functionality populates specific fields of statistics. The delay accounting functionality populates specific fields of
this structure. See this structure. See
include/linux/taskstats.h include/linux/taskstats.h
for a description of the fields pertaining to delay accounting. for a description of the fields pertaining to delay accounting.
It will generally be in the form of counters returning the cumulative It will generally be in the form of counters returning the cumulative
delay seen for cpu, sync block I/O, swapin, memory reclaim etc. delay seen for cpu, sync block I/O, swapin, memory reclaim etc.
...@@ -61,13 +64,16 @@ also serves as an example of using the taskstats interface. ...@@ -61,13 +64,16 @@ also serves as an example of using the taskstats interface.
Usage Usage
----- -----
Compile the kernel with Compile the kernel with::
CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASKSTATS=y CONFIG_TASKSTATS=y
Delay accounting is enabled by default at boot up. Delay accounting is enabled by default at boot up.
To disable, add To disable, add::
nodelayacct nodelayacct
to the kernel boot options. The rest of the instructions to the kernel boot options. The rest of the instructions
below assume this has not been done. below assume this has not been done.
...@@ -78,40 +84,43 @@ The utility also allows a given command to be ...@@ -78,40 +84,43 @@ The utility also allows a given command to be
executed and the corresponding delays to be executed and the corresponding delays to be
seen. seen.
General format of the getdelays command General format of the getdelays command::
getdelays [-t tgid] [-p pid] [-c cmd...] getdelays [-t tgid] [-p pid] [-c cmd...]
Get delays, since system boot, for pid 10 Get delays, since system boot, for pid 10::
# ./getdelays -p 10
(output similar to next case)
Get sum of delays, since system boot, for all pids with tgid 5 # ./getdelays -p 10
# ./getdelays -t 5 (output similar to next case)
Get sum of delays, since system boot, for all pids with tgid 5::
CPU count real total virtual total delay total # ./getdelays -t 5
7876 92005750 100000000 24001500
IO count delay total
0 0 CPU count real total virtual total delay total
SWAP count delay total 7876 92005750 100000000 24001500
0 0 IO count delay total
RECLAIM count delay total 0 0
0 0 SWAP count delay total
0 0
RECLAIM count delay total
0 0
Get delays seen in executing a given simple command::
Get delays seen in executing a given simple command # ./getdelays -c ls /
# ./getdelays -c ls /
bin data1 data3 data5 dev home media opt root srv sys usr bin data1 data3 data5 dev home media opt root srv sys usr
boot data2 data4 data6 etc lib mnt proc sbin subdomain tmp var boot data2 data4 data6 etc lib mnt proc sbin subdomain tmp var
CPU count real total virtual total delay total CPU count real total virtual total delay total
6 4000250 4000000 0 6 4000250 4000000 0
IO count delay total IO count delay total
0 0 0 0
SWAP count delay total SWAP count delay total
0 0 0 0
RECLAIM count delay total RECLAIM count delay total
0 0 0 0
.. SPDX-License-Identifier: GPL-2.0
==========
Accounting
==========
.. toctree::
:maxdepth: 1
cgroupstats
delay-accounting
psi
taskstats
taskstats-struct
...@@ -35,14 +35,14 @@ Pressure interface ...@@ -35,14 +35,14 @@ Pressure interface
Pressure information for each resource is exported through the Pressure information for each resource is exported through the
respective file in /proc/pressure/ -- cpu, memory, and io. respective file in /proc/pressure/ -- cpu, memory, and io.
The format for CPU is as such: The format for CPU is as such::
some avg10=0.00 avg60=0.00 avg300=0.00 total=0 some avg10=0.00 avg60=0.00 avg300=0.00 total=0
and for memory and IO: and for memory and IO::
some avg10=0.00 avg60=0.00 avg300=0.00 total=0 some avg10=0.00 avg60=0.00 avg300=0.00 total=0
full avg10=0.00 avg60=0.00 avg300=0.00 total=0 full avg10=0.00 avg60=0.00 avg300=0.00 total=0
The "some" line indicates the share of time in which at least some The "some" line indicates the share of time in which at least some
tasks are stalled on a given resource. tasks are stalled on a given resource.
...@@ -77,9 +77,9 @@ To register a trigger user has to open psi interface file under ...@@ -77,9 +77,9 @@ To register a trigger user has to open psi interface file under
/proc/pressure/ representing the resource to be monitored and write the /proc/pressure/ representing the resource to be monitored and write the
desired threshold and time window. The open file descriptor should be desired threshold and time window. The open file descriptor should be
used to wait for trigger events using select(), poll() or epoll(). used to wait for trigger events using select(), poll() or epoll().
The following format is used: The following format is used::
<some|full> <stall amount in us> <time window in us> <some|full> <stall amount in us> <time window in us>
For example writing "some 150000 1000000" into /proc/pressure/memory For example writing "some 150000 1000000" into /proc/pressure/memory
would add 150ms threshold for partial memory stall measured within would add 150ms threshold for partial memory stall measured within
...@@ -115,18 +115,20 @@ trigger is closed. ...@@ -115,18 +115,20 @@ trigger is closed.
Userspace monitor usage example Userspace monitor usage example
=============================== ===============================
#include <errno.h> ::
#include <fcntl.h>
#include <stdio.h> #include <errno.h>
#include <poll.h> #include <fcntl.h>
#include <string.h> #include <stdio.h>
#include <unistd.h> #include <poll.h>
#include <string.h>
/* #include <unistd.h>
* Monitor memory partial stall with 1s tracking window size
* and 150ms threshold. /*
*/ * Monitor memory partial stall with 1s tracking window size
int main() { * and 150ms threshold.
*/
int main() {
const char trig[] = "some 150000 1000000"; const char trig[] = "some 150000 1000000";
struct pollfd fds; struct pollfd fds;
int n; int n;
...@@ -165,7 +167,7 @@ int main() { ...@@ -165,7 +167,7 @@ int main() {
} }
return 0; return 0;
} }
Cgroup2 interface Cgroup2 interface
================= =================
......
====================
The struct taskstats The struct taskstats
-------------------- ====================
This document contains an explanation of the struct taskstats fields. This document contains an explanation of the struct taskstats fields.
...@@ -10,16 +11,24 @@ There are three different groups of fields in the struct taskstats: ...@@ -10,16 +11,24 @@ There are three different groups of fields in the struct taskstats:
the common fields and basic accounting fields are collected for the common fields and basic accounting fields are collected for
delivery at do_exit() of a task. delivery at do_exit() of a task.
2) Delay accounting fields 2) Delay accounting fields
These fields are placed between These fields are placed between::
/* Delay accounting fields start */
and /* Delay accounting fields start */
/* Delay accounting fields end */
and::
/* Delay accounting fields end */
Their values are collected if CONFIG_TASK_DELAY_ACCT is set. Their values are collected if CONFIG_TASK_DELAY_ACCT is set.
3) Extended accounting fields 3) Extended accounting fields
These fields are placed between These fields are placed between::
/* Extended accounting fields start */
and /* Extended accounting fields start */
/* Extended accounting fields end */
and::
/* Extended accounting fields end */
Their values are collected if CONFIG_TASK_XACCT is set. Their values are collected if CONFIG_TASK_XACCT is set.
4) Per-task and per-thread context switch count statistics 4) Per-task and per-thread context switch count statistics
...@@ -31,31 +40,33 @@ There are three different groups of fields in the struct taskstats: ...@@ -31,31 +40,33 @@ There are three different groups of fields in the struct taskstats:
Future extension should add fields to the end of the taskstats struct, and Future extension should add fields to the end of the taskstats struct, and
should not change the relative position of each field within the struct. should not change the relative position of each field within the struct.
::
struct taskstats { struct taskstats {
1) Common and basic accounting fields::
1) Common and basic accounting fields:
/* The version number of this struct. This field is always set to /* The version number of this struct. This field is always set to
* TAKSTATS_VERSION, which is defined in <linux/taskstats.h>. * TAKSTATS_VERSION, which is defined in <linux/taskstats.h>.
* Each time the struct is changed, the value should be incremented. * Each time the struct is changed, the value should be incremented.
*/ */
__u16 version; __u16 version;
/* The exit code of a task. */ /* The exit code of a task. */
__u32 ac_exitcode; /* Exit status */ __u32 ac_exitcode; /* Exit status */
/* The accounting flags of a task as defined in <linux/acct.h> /* The accounting flags of a task as defined in <linux/acct.h>
* Defined values are AFORK, ASU, ACOMPAT, ACORE, and AXSIG. * Defined values are AFORK, ASU, ACOMPAT, ACORE, and AXSIG.
*/ */
__u8 ac_flag; /* Record flags */ __u8 ac_flag; /* Record flags */
/* The value of task_nice() of a task. */ /* The value of task_nice() of a task. */
__u8 ac_nice; /* task_nice */ __u8 ac_nice; /* task_nice */
/* The name of the command that started this task. */ /* The name of the command that started this task. */
char ac_comm[TS_COMM_LEN]; /* Command name */ char ac_comm[TS_COMM_LEN]; /* Command name */
/* The scheduling discipline as set in task->policy field. */ /* The scheduling discipline as set in task->policy field. */
__u8 ac_sched; /* Scheduling discipline */ __u8 ac_sched; /* Scheduling discipline */
__u8 ac_pad[3]; __u8 ac_pad[3];
...@@ -64,26 +75,27 @@ struct taskstats { ...@@ -64,26 +75,27 @@ struct taskstats {
__u32 ac_pid; /* Process ID */ __u32 ac_pid; /* Process ID */
__u32 ac_ppid; /* Parent process ID */ __u32 ac_ppid; /* Parent process ID */
/* The time when a task begins, in [secs] since 1970. */ /* The time when a task begins, in [secs] since 1970. */
__u32 ac_btime; /* Begin time [sec since 1970] */ __u32 ac_btime; /* Begin time [sec since 1970] */
/* The elapsed time of a task, in [usec]. */ /* The elapsed time of a task, in [usec]. */
__u64 ac_etime; /* Elapsed time [usec] */ __u64 ac_etime; /* Elapsed time [usec] */
/* The user CPU time of a task, in [usec]. */ /* The user CPU time of a task, in [usec]. */
__u64 ac_utime; /* User CPU time [usec] */ __u64 ac_utime; /* User CPU time [usec] */
/* The system CPU time of a task, in [usec]. */ /* The system CPU time of a task, in [usec]. */
__u64 ac_stime; /* System CPU time [usec] */ __u64 ac_stime; /* System CPU time [usec] */
/* The minor page fault count of a task, as set in task->min_flt. */ /* The minor page fault count of a task, as set in task->min_flt. */
__u64 ac_minflt; /* Minor Page Fault Count */ __u64 ac_minflt; /* Minor Page Fault Count */
/* The major page fault count of a task, as set in task->maj_flt. */ /* The major page fault count of a task, as set in task->maj_flt. */
__u64 ac_majflt; /* Major Page Fault Count */ __u64 ac_majflt; /* Major Page Fault Count */
2) Delay accounting fields: 2) Delay accounting fields::
/* Delay accounting fields start /* Delay accounting fields start
* *
* All values, until the comment "Delay accounting fields end" are * All values, until the comment "Delay accounting fields end" are
...@@ -134,7 +146,8 @@ struct taskstats { ...@@ -134,7 +146,8 @@ struct taskstats {
/* version 1 ends here */ /* version 1 ends here */
3) Extended accounting fields 3) Extended accounting fields::
/* Extended accounting fields start */ /* Extended accounting fields start */
/* Accumulated RSS usage in duration of a task, in MBytes-usecs. /* Accumulated RSS usage in duration of a task, in MBytes-usecs.
...@@ -145,15 +158,15 @@ struct taskstats { ...@@ -145,15 +158,15 @@ struct taskstats {
*/ */
__u64 coremem; /* accumulated RSS usage in MB-usec */ __u64 coremem; /* accumulated RSS usage in MB-usec */
/* Accumulated virtual memory usage in duration of a task. /* Accumulated virtual memory usage in duration of a task.
* Same as acct_rss_mem1 above except that we keep track of VM usage. * Same as acct_rss_mem1 above except that we keep track of VM usage.
*/ */
__u64 virtmem; /* accumulated VM usage in MB-usec */ __u64 virtmem; /* accumulated VM usage in MB-usec */
/* High watermark of RSS usage in duration of a task, in KBytes. */ /* High watermark of RSS usage in duration of a task, in KBytes. */
__u64 hiwater_rss; /* High-watermark of RSS usage */ __u64 hiwater_rss; /* High-watermark of RSS usage */
/* High watermark of VM usage in duration of a task, in KBytes. */ /* High watermark of VM usage in duration of a task, in KBytes. */
__u64 hiwater_vm; /* High-water virtual memory usage */ __u64 hiwater_vm; /* High-water virtual memory usage */
/* The following four fields are I/O statistics of a task. */ /* The following four fields are I/O statistics of a task. */
...@@ -164,17 +177,23 @@ struct taskstats { ...@@ -164,17 +177,23 @@ struct taskstats {
/* Extended accounting fields end */ /* Extended accounting fields end */
4) Per-task and per-thread statistics 4) Per-task and per-thread statistics::
__u64 nvcsw; /* Context voluntary switch counter */ __u64 nvcsw; /* Context voluntary switch counter */
__u64 nivcsw; /* Context involuntary switch counter */ __u64 nivcsw; /* Context involuntary switch counter */
5) Time accounting for SMT machines 5) Time accounting for SMT machines::
__u64 ac_utimescaled; /* utime scaled on frequency etc */ __u64 ac_utimescaled; /* utime scaled on frequency etc */
__u64 ac_stimescaled; /* stime scaled on frequency etc */ __u64 ac_stimescaled; /* stime scaled on frequency etc */
__u64 cpu_scaled_run_real_total; /* scaled cpu_run_real_total */ __u64 cpu_scaled_run_real_total; /* scaled cpu_run_real_total */
6) Extended delay accounting fields for memory reclaim 6) Extended delay accounting fields for memory reclaim::
/* Delay waiting for memory reclaim */ /* Delay waiting for memory reclaim */
__u64 freepages_count; __u64 freepages_count;
__u64 freepages_delay_total; __u64 freepages_delay_total;
}
::
}
=============================
Per-task statistics interface Per-task statistics interface
----------------------------- =============================
Taskstats is a netlink-based interface for sending per-task and Taskstats is a netlink-based interface for sending per-task and
...@@ -65,7 +66,7 @@ taskstats.h file. ...@@ -65,7 +66,7 @@ taskstats.h file.
The data exchanged between user and kernel space is a netlink message belonging The data exchanged between user and kernel space is a netlink message belonging
to the NETLINK_GENERIC family and using the netlink attributes interface. to the NETLINK_GENERIC family and using the netlink attributes interface.
The messages are in the format The messages are in the format::
+----------+- - -+-------------+-------------------+ +----------+- - -+-------------+-------------------+
| nlmsghdr | Pad | genlmsghdr | taskstats payload | | nlmsghdr | Pad | genlmsghdr | taskstats payload |
...@@ -167,15 +168,13 @@ extended and the number of cpus grows large. ...@@ -167,15 +168,13 @@ extended and the number of cpus grows large.
To avoid losing statistics, userspace should do one or more of the following: To avoid losing statistics, userspace should do one or more of the following:
- increase the receive buffer sizes for the netlink sockets opened by - increase the receive buffer sizes for the netlink sockets opened by
listeners to receive exit data. listeners to receive exit data.
- create more listeners and reduce the number of cpus being listened to by - create more listeners and reduce the number of cpus being listened to by
each listener. In the extreme case, there could be one listener for each cpu. each listener. In the extreme case, there could be one listener for each cpu.
Users may also consider setting the cpu affinity of the listener to the subset Users may also consider setting the cpu affinity of the listener to the subset
of cpus to which it listens, especially if they are listening to just one cpu. of cpus to which it listens, especially if they are listening to just one cpu.
Despite these measures, if the userspace receives ENOBUFS error messages Despite these measures, if the userspace receives ENOBUFS error messages
indicated overflow of receive buffers, it should take measures to handle the indicated overflow of receive buffers, it should take measures to handle the
loss of data. loss of data.
----
...@@ -20,7 +20,7 @@ driver. The aoetools are on sourceforge. ...@@ -20,7 +20,7 @@ driver. The aoetools are on sourceforge.
http://aoetools.sourceforge.net/ http://aoetools.sourceforge.net/
The scripts in this Documentation/aoe directory are intended to The scripts in this Documentation/admin-guide/aoe directory are intended to
document the use of the driver and are not necessary if you install document the use of the driver and are not necessary if you install
the aoetools. the aoetools.
...@@ -86,7 +86,7 @@ Using sysfs ...@@ -86,7 +86,7 @@ Using sysfs
a convenient way. Users with aoetools should use the aoe-stat a convenient way. Users with aoetools should use the aoe-stat
command:: command::
root@makki root# sh Documentation/aoe/status.sh root@makki root# sh Documentation/admin-guide/aoe/status.sh
e10.0 eth3 up e10.0 eth3 up
e10.1 eth3 up e10.1 eth3 up
e10.2 eth3 up e10.2 eth3 up
......
:orphan:
======================= =======================
ATA over Ethernet (AoE) ATA over Ethernet (AoE)
======================= =======================
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# udev_rules="/etc/udev/rules.d/" # udev_rules="/etc/udev/rules.d/"
# bash# ls /etc/udev/rules.d/ # bash# ls /etc/udev/rules.d/
# 10-wacom.rules 50-udev.rules # 10-wacom.rules 50-udev.rules
# bash# cp /path/to/linux/Documentation/aoe/udev.txt \ # bash# cp /path/to/linux/Documentation/admin-guide/aoe/udev.txt \
# /etc/udev/rules.d/60-aoe.rules # /etc/udev/rules.d/60-aoe.rules
# #
......
================================
kernel data structure for DRBD-9
================================
This describes the in kernel data structure for DRBD-9. Starting with This describes the in kernel data structure for DRBD-9. Starting with
Linux v3.14 we are reorganizing DRBD to use this data structure. Linux v3.14 we are reorganizing DRBD to use this data structure.
...@@ -10,7 +14,7 @@ device is represented by a block device locally. ...@@ -10,7 +14,7 @@ device is represented by a block device locally.
The DRBD objects are interconnected to form a matrix as depicted below; a The DRBD objects are interconnected to form a matrix as depicted below; a
drbd_peer_device object sits at each intersection between a drbd_device and a drbd_peer_device object sits at each intersection between a drbd_device and a
drbd_connection: drbd_connection::
/--------------+---------------+.....+---------------\ /--------------+---------------+.....+---------------\
| resource | device | | device | | resource | device | | device |
......
.. SPDX-License-Identifier: GPL-2.0
.. The here included files are intended to help understand the implementation
Data flows that Relate some functions, and write packets
========================================================
.. kernel-figure:: DRBD-8.3-data-packets.svg
:alt: DRBD-8.3-data-packets.svg
:align: center
.. kernel-figure:: DRBD-data-packets.svg
:alt: DRBD-data-packets.svg
:align: center
Sub graphs of DRBD's state transitions
======================================
.. kernel-figure:: conn-states-8.dot
:alt: conn-states-8.dot
:align: center
.. kernel-figure:: disk-states-8.dot
:alt: disk-states-8.dot
:align: center
.. kernel-figure:: node-states-8.dot
:alt: node-states-8.dot
:align: center
==========================================
Distributed Replicated Block Device - DRBD
==========================================
Description Description
===========
DRBD is a shared-nothing, synchronously replicated block device. It DRBD is a shared-nothing, synchronously replicated block device. It
is designed to serve as a building block for high availability is designed to serve as a building block for high availability
...@@ -7,10 +12,8 @@ Description ...@@ -7,10 +12,8 @@ Description
Please visit http://www.drbd.org to find out more. Please visit http://www.drbd.org to find out more.
The here included files are intended to help understand the implementation .. toctree::
:maxdepth: 1
DRBD-8.3-data-packets.svg, DRBD-data-packets.svg
relates some functions, and write packets.
conn-states-8.dot, disk-states-8.dot, node-states-8.dot data-structure-v9
The sub graphs of DRBD's state transitions figures
...@@ -11,4 +11,3 @@ digraph peer_states { ...@@ -11,4 +11,3 @@ digraph peer_states {
Unknown -> Primary [ label = "connected" ] Unknown -> Primary [ label = "connected" ]
Unknown -> Secondary [ label = "connected" ] Unknown -> Secondary [ label = "connected" ]
} }
This file describes the floppy driver. =============
Floppy Driver
=============
FAQ list: FAQ list:
========= =========
A FAQ list may be found in the fdutils package (see below), and also A FAQ list may be found in the fdutils package (see below), and also
at <http://fdutils.linux.lu/faq.html>. at <http://fdutils.linux.lu/faq.html>.
LILO configuration options (Thinkpad users, read this) LILO configuration options (Thinkpad users, read this)
====================================================== ======================================================
The floppy driver is configured using the 'floppy=' option in The floppy driver is configured using the 'floppy=' option in
lilo. This option can be typed at the boot prompt, or entered in the lilo. This option can be typed at the boot prompt, or entered in the
lilo configuration file. lilo configuration file.
Example: If your kernel is called linux-2.6.9, type the following line Example: If your kernel is called linux-2.6.9, type the following line
at the lilo boot prompt (if you have a thinkpad): at the lilo boot prompt (if you have a thinkpad)::
linux-2.6.9 floppy=thinkpad linux-2.6.9 floppy=thinkpad
You may also enter the following line in /etc/lilo.conf, in the description You may also enter the following line in /etc/lilo.conf, in the description
of linux-2.6.9: of linux-2.6.9::
append = "floppy=thinkpad" append = "floppy=thinkpad"
Several floppy related options may be given, example: Several floppy related options may be given, example::
linux-2.6.9 floppy=daring floppy=two_fdc linux-2.6.9 floppy=daring floppy=two_fdc
append = "floppy=daring floppy=two_fdc" append = "floppy=daring floppy=two_fdc"
If you give options both in the lilo config file and on the boot If you give options both in the lilo config file and on the boot
prompt, the option strings of both places are concatenated, the boot prompt, the option strings of both places are concatenated, the boot
prompt options coming last. That's why there are also options to prompt options coming last. That's why there are also options to
restore the default behavior. restore the default behavior.
...@@ -38,21 +40,23 @@ restore the default behavior. ...@@ -38,21 +40,23 @@ restore the default behavior.
Module configuration options Module configuration options
============================ ============================
If you use the floppy driver as a module, use the following syntax: If you use the floppy driver as a module, use the following syntax::
modprobe floppy floppy="<options>"
Example: modprobe floppy floppy="<options>"
modprobe floppy floppy="omnibook messages"
If you need certain options enabled every time you load the floppy driver, Example::
you can put:
options floppy floppy="omnibook messages" modprobe floppy floppy="omnibook messages"
If you need certain options enabled every time you load the floppy driver,
you can put::
options floppy floppy="omnibook messages"
in a configuration file in /etc/modprobe.d/. in a configuration file in /etc/modprobe.d/.
The floppy driver related options are: The floppy driver related options are:
floppy=asus_pci floppy=asus_pci
Sets the bit mask to allow only units 0 and 1. (default) Sets the bit mask to allow only units 0 and 1. (default)
...@@ -70,8 +74,7 @@ in a configuration file in /etc/modprobe.d/. ...@@ -70,8 +74,7 @@ in a configuration file in /etc/modprobe.d/.
Tells the floppy driver that you have only one floppy controller. Tells the floppy driver that you have only one floppy controller.
(default) (default)
floppy=two_fdc floppy=two_fdc / floppy=<address>,two_fdc
floppy=<address>,two_fdc
Tells the floppy driver that you have two floppy controllers. Tells the floppy driver that you have two floppy controllers.
The second floppy controller is assumed to be at <address>. The second floppy controller is assumed to be at <address>.
This option is not needed if the second controller is at address This option is not needed if the second controller is at address
...@@ -84,8 +87,7 @@ in a configuration file in /etc/modprobe.d/. ...@@ -84,8 +87,7 @@ in a configuration file in /etc/modprobe.d/.
floppy=0,thinkpad floppy=0,thinkpad
Tells the floppy driver that you don't have a Thinkpad. Tells the floppy driver that you don't have a Thinkpad.
floppy=omnibook floppy=omnibook / floppy=nodma
floppy=nodma
Tells the floppy driver not to use Dma for data transfers. Tells the floppy driver not to use Dma for data transfers.
This is needed on HP Omnibooks, which don't have a workable This is needed on HP Omnibooks, which don't have a workable
DMA channel for the floppy driver. This option is also useful DMA channel for the floppy driver. This option is also useful
...@@ -144,14 +146,16 @@ in a configuration file in /etc/modprobe.d/. ...@@ -144,14 +146,16 @@ in a configuration file in /etc/modprobe.d/.
described in the physical CMOS), or if your BIOS uses described in the physical CMOS), or if your BIOS uses
non-standard CMOS types. The CMOS types are: non-standard CMOS types. The CMOS types are:
0 - Use the value of the physical CMOS == ==================================
1 - 5 1/4 DD 0 Use the value of the physical CMOS
2 - 5 1/4 HD 1 5 1/4 DD
3 - 3 1/2 DD 2 5 1/4 HD
4 - 3 1/2 HD 3 3 1/2 DD
5 - 3 1/2 ED 4 3 1/2 HD
6 - 3 1/2 ED 5 3 1/2 ED
16 - unknown or not installed 6 3 1/2 ED
16 unknown or not installed
== ==================================
(Note: there are two valid types for ED drives. This is because 5 was (Note: there are two valid types for ED drives. This is because 5 was
initially chosen to represent floppy *tapes*, and 6 for ED drives. initially chosen to represent floppy *tapes*, and 6 for ED drives.
...@@ -162,8 +166,7 @@ in a configuration file in /etc/modprobe.d/. ...@@ -162,8 +166,7 @@ in a configuration file in /etc/modprobe.d/.
Print a warning message when an unexpected interrupt is received. Print a warning message when an unexpected interrupt is received.
(default) (default)
floppy=no_unexpected_interrupts floppy=no_unexpected_interrupts / floppy=L40SX
floppy=L40SX
Don't print a message when an unexpected interrupt is received. This Don't print a message when an unexpected interrupt is received. This
is needed on IBM L40SX laptops in certain video modes. (There seems is needed on IBM L40SX laptops in certain video modes. (There seems
to be an interaction between video and floppy. The unexpected to be an interaction between video and floppy. The unexpected
...@@ -199,47 +202,54 @@ in a configuration file in /etc/modprobe.d/. ...@@ -199,47 +202,54 @@ in a configuration file in /etc/modprobe.d/.
Sets the floppy DMA channel to <nr> instead of 2. Sets the floppy DMA channel to <nr> instead of 2.
floppy=slow floppy=slow
Use PS/2 stepping rate: Use PS/2 stepping rate::
" PS/2 floppies have much slower step rates than regular floppies.
PS/2 floppies have much slower step rates than regular floppies.
It's been recommended that take about 1/4 of the default speed It's been recommended that take about 1/4 of the default speed
in some more extreme cases." in some more extreme cases.
Supporting utilities and additional documentation: Supporting utilities and additional documentation:
================================================== ==================================================
Additional parameters of the floppy driver can be configured at Additional parameters of the floppy driver can be configured at
runtime. Utilities which do this can be found in the fdutils package. runtime. Utilities which do this can be found in the fdutils package.
This package also contains a new version of mtools which allows to This package also contains a new version of mtools which allows to
access high capacity disks (up to 1992K on a high density 3 1/2 disk!). access high capacity disks (up to 1992K on a high density 3 1/2 disk!).
It also contains additional documentation about the floppy driver. It also contains additional documentation about the floppy driver.
The latest version can be found at fdutils homepage: The latest version can be found at fdutils homepage:
http://fdutils.linux.lu http://fdutils.linux.lu
The fdutils releases can be found at: The fdutils releases can be found at:
http://fdutils.linux.lu/download.html http://fdutils.linux.lu/download.html
http://www.tux.org/pub/knaff/fdutils/ http://www.tux.org/pub/knaff/fdutils/
ftp://metalab.unc.edu/pub/Linux/utils/disk-management/ ftp://metalab.unc.edu/pub/Linux/utils/disk-management/
Reporting problems about the floppy driver Reporting problems about the floppy driver
========================================== ==========================================
If you have a question or a bug report about the floppy driver, mail If you have a question or a bug report about the floppy driver, mail
me at Alain.Knaff@poboxes.com . If you post to Usenet, preferably use me at Alain.Knaff@poboxes.com . If you post to Usenet, preferably use
comp.os.linux.hardware. As the volume in these groups is rather high, comp.os.linux.hardware. As the volume in these groups is rather high,
be sure to include the word "floppy" (or "FLOPPY") in the subject be sure to include the word "floppy" (or "FLOPPY") in the subject
line. If the reported problem happens when mounting floppy disks, be line. If the reported problem happens when mounting floppy disks, be
sure to mention also the type of the filesystem in the subject line. sure to mention also the type of the filesystem in the subject line.
Be sure to read the FAQ before mailing/posting any bug reports! Be sure to read the FAQ before mailing/posting any bug reports!
Alain Alain
Changelog Changelog
========= =========
10-30-2004 : Cleanup, updating, add reference to module configuration. 10-30-2004 :
Cleanup, updating, add reference to module configuration.
James Nelson <james4765@gmail.com> James Nelson <james4765@gmail.com>
6-3-2000 : Original Document 6-3-2000 :
Original Document
.. SPDX-License-Identifier: GPL-2.0
===========================
The Linux RapidIO Subsystem
===========================
.. toctree::
:maxdepth: 1
floppy
nbd
paride
ramdisk
zram
drbd/index
==================================
Network Block Device (TCP version) Network Block Device (TCP version)
================================== ==================================
...@@ -28,4 +29,3 @@ max_part ...@@ -28,4 +29,3 @@ max_part
nbds_max nbds_max
Number of block devices that should be initialized (default: 16). Number of block devices that should be initialized (default: 16).
==========================================
Using the RAM disk block device with Linux Using the RAM disk block device with Linux
------------------------------------------ ==========================================
Contents: .. Contents:
1) Overview 1) Overview
2) Kernel Command Line Parameters 2) Kernel Command Line Parameters
...@@ -42,7 +43,7 @@ rescue floppy disk. ...@@ -42,7 +43,7 @@ rescue floppy disk.
2a) Kernel Command Line Parameters 2a) Kernel Command Line Parameters
ramdisk_size=N ramdisk_size=N
============== Size of the ramdisk.
This parameter tells the RAM disk driver to set up RAM disks of N k size. The This parameter tells the RAM disk driver to set up RAM disks of N k size. The
default is 4096 (4 MB). default is 4096 (4 MB).
...@@ -50,16 +51,13 @@ default is 4096 (4 MB). ...@@ -50,16 +51,13 @@ default is 4096 (4 MB).
2b) Module parameters 2b) Module parameters
rd_nr rd_nr
===== /dev/ramX devices created.
/dev/ramX devices created.
max_part max_part
======== Maximum partition number.
Maximum partition number.
rd_size rd_size
======= See ramdisk_size.
See ramdisk_size.
3) Using "rdev -r" 3) Using "rdev -r"
------------------ ------------------
...@@ -71,11 +69,11 @@ to 2 MB (2^11) of where to find the RAM disk (this used to be the size). Bit ...@@ -71,11 +69,11 @@ to 2 MB (2^11) of where to find the RAM disk (this used to be the size). Bit
prompt/wait sequence is to be given before trying to read the RAM disk. Since prompt/wait sequence is to be given before trying to read the RAM disk. Since
the RAM disk dynamically grows as data is being written into it, a size field the RAM disk dynamically grows as data is being written into it, a size field
is not required. Bits 11 to 13 are not currently used and may as well be zero. is not required. Bits 11 to 13 are not currently used and may as well be zero.
These numbers are no magical secrets, as seen below: These numbers are no magical secrets, as seen below::
./arch/x86/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF ./arch/x86/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF
./arch/x86/kernel/setup.c:#define RAMDISK_PROMPT_FLAG 0x8000 ./arch/x86/kernel/setup.c:#define RAMDISK_PROMPT_FLAG 0x8000
./arch/x86/kernel/setup.c:#define RAMDISK_LOAD_FLAG 0x4000 ./arch/x86/kernel/setup.c:#define RAMDISK_LOAD_FLAG 0x4000
Consider a typical two floppy disk setup, where you will have the Consider a typical two floppy disk setup, where you will have the
kernel on disk one, and have already put a RAM disk image onto disk #2. kernel on disk one, and have already put a RAM disk image onto disk #2.
...@@ -92,20 +90,23 @@ sequence so that you have a chance to switch floppy disks. ...@@ -92,20 +90,23 @@ sequence so that you have a chance to switch floppy disks.
The command line equivalent is: "prompt_ramdisk=1" The command line equivalent is: "prompt_ramdisk=1"
Putting that together gives 2^15 + 2^14 + 0 = 49152 for an rdev word. Putting that together gives 2^15 + 2^14 + 0 = 49152 for an rdev word.
So to create disk one of the set, you would do: So to create disk one of the set, you would do::
/usr/src/linux# cat arch/x86/boot/zImage > /dev/fd0 /usr/src/linux# cat arch/x86/boot/zImage > /dev/fd0
/usr/src/linux# rdev /dev/fd0 /dev/fd0 /usr/src/linux# rdev /dev/fd0 /dev/fd0
/usr/src/linux# rdev -r /dev/fd0 49152 /usr/src/linux# rdev -r /dev/fd0 49152
If you make a boot disk that has LILO, then for the above, you would use: If you make a boot disk that has LILO, then for the above, you would use::
append = "ramdisk_start=0 load_ramdisk=1 prompt_ramdisk=1" append = "ramdisk_start=0 load_ramdisk=1 prompt_ramdisk=1"
Since the default start = 0 and the default prompt = 1, you could use:
Since the default start = 0 and the default prompt = 1, you could use::
append = "load_ramdisk=1" append = "load_ramdisk=1"
4) An Example of Creating a Compressed RAM Disk 4) An Example of Creating a Compressed RAM Disk
---------------------------------------------- -----------------------------------------------
To create a RAM disk image, you will need a spare block device to To create a RAM disk image, you will need a spare block device to
construct it on. This can be the RAM disk device itself, or an construct it on. This can be the RAM disk device itself, or an
...@@ -120,11 +121,11 @@ a) Decide on the RAM disk size that you want. Say 2 MB for this example. ...@@ -120,11 +121,11 @@ a) Decide on the RAM disk size that you want. Say 2 MB for this example.
Create it by writing to the RAM disk device. (This step is not currently Create it by writing to the RAM disk device. (This step is not currently
required, but may be in the future.) It is wise to zero out the required, but may be in the future.) It is wise to zero out the
area (esp. for disks) so that maximal compression is achieved for area (esp. for disks) so that maximal compression is achieved for
the unused blocks of the image that you are about to create. the unused blocks of the image that you are about to create::
dd if=/dev/zero of=/dev/ram0 bs=1k count=2048 dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
b) Make a filesystem on it. Say ext2fs for this example. b) Make a filesystem on it. Say ext2fs for this example::
mke2fs -vm0 /dev/ram0 2048 mke2fs -vm0 /dev/ram0 2048
...@@ -133,11 +134,11 @@ c) Mount it, copy the files you want to it (eg: /etc/* /dev/* ...) ...@@ -133,11 +134,11 @@ c) Mount it, copy the files you want to it (eg: /etc/* /dev/* ...)
d) Compress the contents of the RAM disk. The level of compression d) Compress the contents of the RAM disk. The level of compression
will be approximately 50% of the space used by the files. Unused will be approximately 50% of the space used by the files. Unused
space on the RAM disk will compress to almost nothing. space on the RAM disk will compress to almost nothing::
dd if=/dev/ram0 bs=1k count=2048 | gzip -v9 > /tmp/ram_image.gz dd if=/dev/ram0 bs=1k count=2048 | gzip -v9 > /tmp/ram_image.gz
e) Put the kernel onto the floppy e) Put the kernel onto the floppy::
dd if=zImage of=/dev/fd0 bs=1k dd if=zImage of=/dev/fd0 bs=1k
...@@ -146,13 +147,13 @@ f) Put the RAM disk image onto the floppy, after the kernel. Use an offset ...@@ -146,13 +147,13 @@ f) Put the RAM disk image onto the floppy, after the kernel. Use an offset
(possibly larger) kernel onto the same floppy later without overlapping (possibly larger) kernel onto the same floppy later without overlapping
the RAM disk image. An offset of 400 kB for kernels about 350 kB in the RAM disk image. An offset of 400 kB for kernels about 350 kB in
size would be reasonable. Make sure offset+size of ram_image.gz is size would be reasonable. Make sure offset+size of ram_image.gz is
not larger than the total space on your floppy (usually 1440 kB). not larger than the total space on your floppy (usually 1440 kB)::
dd if=/tmp/ram_image.gz of=/dev/fd0 bs=1k seek=400 dd if=/tmp/ram_image.gz of=/dev/fd0 bs=1k seek=400
g) Use "rdev" to set the boot device, RAM disk offset, prompt flag, etc. g) Use "rdev" to set the boot device, RAM disk offset, prompt flag, etc.
For prompt_ramdisk=1, load_ramdisk=1, ramdisk_start=400, one would For prompt_ramdisk=1, load_ramdisk=1, ramdisk_start=400, one would
have 2^15 + 2^14 + 400 = 49552. have 2^15 + 2^14 + 400 = 49552::
rdev /dev/fd0 /dev/fd0 rdev /dev/fd0 /dev/fd0
rdev -r /dev/fd0 49552 rdev -r /dev/fd0 49552
...@@ -160,15 +161,17 @@ g) Use "rdev" to set the boot device, RAM disk offset, prompt flag, etc. ...@@ -160,15 +161,17 @@ g) Use "rdev" to set the boot device, RAM disk offset, prompt flag, etc.
That is it. You now have your boot/root compressed RAM disk floppy. Some That is it. You now have your boot/root compressed RAM disk floppy. Some
users may wish to combine steps (d) and (f) by using a pipe. users may wish to combine steps (d) and (f) by using a pipe.
--------------------------------------------------------------------------
Paul Gortmaker 12/95 Paul Gortmaker 12/95
Changelog: Changelog:
---------- ----------
10-22-04 : Updated to reflect changes in command line options, remove 10-22-04 :
Updated to reflect changes in command line options, remove
obsolete references, general cleanup. obsolete references, general cleanup.
James Nelson (james4765@gmail.com) James Nelson (james4765@gmail.com)
12-95 : Original Document 12-95 :
Original Document
...@@ -90,9 +90,9 @@ the disk is not available then you have three options: ...@@ -90,9 +90,9 @@ the disk is not available then you have three options:
run a null modem to a second machine and capture the output there run a null modem to a second machine and capture the output there
using your favourite communication program. Minicom works well. using your favourite communication program. Minicom works well.
(3) Use Kdump (see Documentation/kdump/kdump.rst), (3) Use Kdump (see Documentation/admin-guide/kdump/kdump.rst),
extract the kernel ring buffer from old memory with using dmesg extract the kernel ring buffer from old memory with using dmesg
gdbmacro in Documentation/kdump/gdbmacros.txt. gdbmacro in Documentation/admin-guide/kdump/gdbmacros.txt.
Finding the bug's location Finding the bug's location
-------------------------- --------------------------
......
...@@ -3,7 +3,7 @@ Control Groups ...@@ -3,7 +3,7 @@ Control Groups
============== ==============
Written by Paul Menage <menage@google.com> based on Written by Paul Menage <menage@google.com> based on
Documentation/cgroup-v1/cpusets.rst Documentation/admin-guide/cgroup-v1/cpusets.rst
Original copyright statements from cpusets.txt: Original copyright statements from cpusets.txt:
...@@ -76,7 +76,7 @@ On their own, the only use for cgroups is for simple job ...@@ -76,7 +76,7 @@ On their own, the only use for cgroups is for simple job
tracking. The intention is that other subsystems hook into the generic tracking. The intention is that other subsystems hook into the generic
cgroup support to provide new attributes for cgroups, such as cgroup support to provide new attributes for cgroups, such as
accounting/limiting the resources which processes in a cgroup can accounting/limiting the resources which processes in a cgroup can
access. For example, cpusets (see Documentation/cgroup-v1/cpusets.rst) allow access. For example, cpusets (see Documentation/admin-guide/cgroup-v1/cpusets.rst) allow
you to associate a set of CPUs and a set of memory nodes with the you to associate a set of CPUs and a set of memory nodes with the
tasks in each cgroup. tasks in each cgroup.
......
...@@ -49,7 +49,7 @@ hooks, beyond what is already present, required to manage dynamic ...@@ -49,7 +49,7 @@ hooks, beyond what is already present, required to manage dynamic
job placement on large systems. job placement on large systems.
Cpusets use the generic cgroup subsystem described in Cpusets use the generic cgroup subsystem described in
Documentation/cgroup-v1/cgroups.rst. Documentation/admin-guide/cgroup-v1/cgroups.rst.
Requests by a task, using the sched_setaffinity(2) system call to Requests by a task, using the sched_setaffinity(2) system call to
include CPUs in its CPU affinity mask, and using the mbind(2) and include CPUs in its CPU affinity mask, and using the mbind(2) and
......
:orphan:
======================== ========================
Control Groups version 1 Control Groups version 1
======================== ========================
......
...@@ -10,7 +10,7 @@ Because VM is getting complex (one of reasons is memcg...), memcg's behavior ...@@ -10,7 +10,7 @@ Because VM is getting complex (one of reasons is memcg...), memcg's behavior
is complex. This is a document for memcg's internal behavior. is complex. This is a document for memcg's internal behavior.
Please note that implementation details can be changed. Please note that implementation details can be changed.
(*) Topics on API should be in Documentation/cgroup-v1/memory.rst) (*) Topics on API should be in Documentation/admin-guide/cgroup-v1/memory.rst)
0. How to record usage ? 0. How to record usage ?
======================== ========================
...@@ -327,7 +327,7 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y. ...@@ -327,7 +327,7 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
You can see charges have been moved by reading ``*.usage_in_bytes`` or You can see charges have been moved by reading ``*.usage_in_bytes`` or
memory.stat of both A and B. memory.stat of both A and B.
See 8.2 of Documentation/cgroup-v1/memory.rst to see what value should See 8.2 of Documentation/admin-guide/cgroup-v1/memory.rst to see what value should
be written to move_charge_at_immigrate. be written to move_charge_at_immigrate.
9.10 Memory thresholds 9.10 Memory thresholds
......
...@@ -9,7 +9,7 @@ This is the authoritative documentation on the design, interface and ...@@ -9,7 +9,7 @@ This is the authoritative documentation on the design, interface and
conventions of cgroup v2. It describes all userland-visible aspects conventions of cgroup v2. It describes all userland-visible aspects
of cgroup including core and specific controller behaviors. All of cgroup including core and specific controller behaviors. All
future changes must be reflected in this document. Documentation for future changes must be reflected in this document. Documentation for
v1 is available under Documentation/cgroup-v1/. v1 is available under Documentation/admin-guide/cgroup-v1/.
.. CONTENTS .. CONTENTS
...@@ -1014,7 +1014,7 @@ All time durations are in microseconds. ...@@ -1014,7 +1014,7 @@ All time durations are in microseconds.
A read-only nested-key file which exists on non-root cgroups. A read-only nested-key file which exists on non-root cgroups.
Shows pressure stall information for CPU. See Shows pressure stall information for CPU. See
Documentation/accounting/psi.txt for details. Documentation/accounting/psi.rst for details.
Memory Memory
...@@ -1355,7 +1355,7 @@ PAGE_SIZE multiple when read back. ...@@ -1355,7 +1355,7 @@ PAGE_SIZE multiple when read back.
A read-only nested-key file which exists on non-root cgroups. A read-only nested-key file which exists on non-root cgroups.
Shows pressure stall information for memory. See Shows pressure stall information for memory. See
Documentation/accounting/psi.txt for details. Documentation/accounting/psi.rst for details.
Usage Guidelines Usage Guidelines
...@@ -1498,7 +1498,7 @@ IO Interface Files ...@@ -1498,7 +1498,7 @@ IO Interface Files
A read-only nested-key file which exists on non-root cgroups. A read-only nested-key file which exists on non-root cgroups.
Shows pressure stall information for IO. See Shows pressure stall information for IO. See
Documentation/accounting/psi.txt for details. Documentation/accounting/psi.rst for details.
Writeback Writeback
......
:orphan:
============= =============
Device Mapper Device Mapper
============= =============
......
...@@ -13,7 +13,7 @@ the range specified. ...@@ -13,7 +13,7 @@ the range specified.
The I/O statistics counters for each step-sized area of a region are The I/O statistics counters for each step-sized area of a region are
in the same format as `/sys/block/*/stat` or `/proc/diskstats` (see: in the same format as `/sys/block/*/stat` or `/proc/diskstats` (see:
Documentation/iostats.txt). But two extra counters (12 and 13) are Documentation/admin-guide/iostats.rst). But two extra counters (12 and 13) are
provided: total time spent reading and writing. When the histogram provided: total time spent reading and writing. When the histogram
argument is used, the 14th parameter is reported that represents the argument is used, the 14th parameter is reported that represents the
histogram of latencies. All these counters may be accessed by sending histogram of latencies. All these counters may be accessed by sending
...@@ -151,7 +151,7 @@ Messages ...@@ -151,7 +151,7 @@ Messages
The first 11 counters have the same meaning as The first 11 counters have the same meaning as
`/sys/block/*/stat or /proc/diskstats`. `/sys/block/*/stat or /proc/diskstats`.
Please refer to Documentation/iostats.txt for details. Please refer to Documentation/admin-guide/iostats.rst for details.
1. the number of reads completed 1. the number of reads completed
2. the number of reads merged 2. the number of reads merged
......
:orphan: .. SPDX-License-Identifier: GPL-2.0
==== ====
gpio gpio
......
...@@ -241,7 +241,7 @@ Guest mitigation mechanisms ...@@ -241,7 +241,7 @@ Guest mitigation mechanisms
For further information about confining guests to a single or to a group For further information about confining guests to a single or to a group
of cores consult the cpusets documentation: of cores consult the cpusets documentation:
https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.rst https://www.kernel.org/doc/Documentation/admin-guide/cgroup-v1/cpusets.rst
.. _interrupt_isolation: .. _interrupt_isolation:
......
...@@ -16,6 +16,7 @@ etc. ...@@ -16,6 +16,7 @@ etc.
README README
kernel-parameters kernel-parameters
devices devices
sysctl/index
This section describes CPU vulnerabilities and their mitigations. This section describes CPU vulnerabilities and their mitigations.
...@@ -38,6 +39,8 @@ problems and bugs in particular. ...@@ -38,6 +39,8 @@ problems and bugs in particular.
ramoops ramoops
dynamic-debug-howto dynamic-debug-howto
init init
kdump/index
perf/index
This is the beginning of a section with information of interest to This is the beginning of a section with information of interest to
application developers. Documents covering various aspects of the kernel application developers. Documents covering various aspects of the kernel
...@@ -56,11 +59,13 @@ configure specific aspects of kernel behavior to your liking. ...@@ -56,11 +59,13 @@ configure specific aspects of kernel behavior to your liking.
initrd initrd
cgroup-v2 cgroup-v2
cgroup-v1/index
serial-console serial-console
braille-console braille-console
parport parport
md md
module-signing module-signing
rapidio
sysrq sysrq
unicode unicode
vga-softcursor vga-softcursor
...@@ -69,14 +74,37 @@ configure specific aspects of kernel behavior to your liking. ...@@ -69,14 +74,37 @@ configure specific aspects of kernel behavior to your liking.
java java
ras ras
bcache bcache
blockdev/index
ext4 ext4
binderfs binderfs
pm/index pm/index
thunderbolt thunderbolt
LSM/index LSM/index
mm/index mm/index
namespaces/index
perf-security perf-security
acpi/index acpi/index
aoe/index
btmrvl
clearing-warn-once
cpu-load
cputopology
device-mapper/index
efi-stub
gpio/index
highuid
hw_random
iostats
kernel-per-CPU-kthreads
laptops/index
lcd-panel-cgram
ldm
lockup-watchdogs
numastat
pnp
rtc
svga
video-output
.. only:: subproject and html .. only:: subproject and html
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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