Documentation: Fix typos

Fix typos in Documentation.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20230814212822.193684-4-helgaas@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Bjorn Helgaas 2023-08-14 16:28:22 -05:00 committed by Jonathan Corbet
parent ebab9426cd
commit d56b699d76
130 changed files with 194 additions and 194 deletions

View File

@ -2624,7 +2624,7 @@
kvm-intel.flexpriority= kvm-intel.flexpriority=
[KVM,Intel] Control KVM's use of FlexPriority feature [KVM,Intel] Control KVM's use of FlexPriority feature
(TPR shadow). Default is 1 (enabled). Disalbe by KVM if (TPR shadow). Default is 1 (enabled). Disable by KVM if
hardware lacks support for it. hardware lacks support for it.
kvm-intel.nested= kvm-intel.nested=

View File

@ -99,7 +99,7 @@ Root
The root of the DAMON sysfs interface is ``<sysfs>/kernel/mm/damon/``, and it The root of the DAMON sysfs interface is ``<sysfs>/kernel/mm/damon/``, and it
has one directory named ``admin``. The directory contains the files for has one directory named ``admin``. The directory contains the files for
privileged user space programs' control of DAMON. User space tools or deamons privileged user space programs' control of DAMON. User space tools or daemons
having the root permission could use this directory. having the root permission could use this directory.
kdamonds/ kdamonds/
@ -397,7 +397,7 @@ be used for online analysis or tuning of the schemes.
The statistics can be retrieved by reading the files under ``stats`` directory The statistics can be retrieved by reading the files under ``stats`` directory
(``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``, and (``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``, and
``qt_exceeds``), respectively. The files are not updated in real time, so you ``qt_exceeds``), respectively. The files are not updated in real time, so you
should ask DAMON sysfs interface to updte the content of the files for the should ask DAMON sysfs interface to update the content of the files for the
stats by writing a special keyword, ``update_schemes_stats`` to the relevant stats by writing a special keyword, ``update_schemes_stats`` to the relevant
``kdamonds/<N>/state`` file. ``kdamonds/<N>/state`` file.

View File

@ -266,7 +266,7 @@ for which it has a public key. Otherwise, it will also load modules that are
unsigned. Any module for which the kernel has a key, but which proves to have unsigned. Any module for which the kernel has a key, but which proves to have
a signature mismatch will not be permitted to load. a signature mismatch will not be permitted to load.
Any module that has an unparseable signature will be rejected. Any module that has an unparsable signature will be rejected.
========================================= =========================================

View File

@ -141,7 +141,7 @@ ST506 hard drives
`*configure` harddrive set to 2). I've got an internal 20MB and a great `*configure` harddrive set to 2). I've got an internal 20MB and a great
big external 5.25" FH 64MB drive (who could ever want more :-) ). big external 5.25" FH 64MB drive (who could ever want more :-) ).
I've just got 240K/s off it (a dd with bs=128k); thats about half of what I've just got 240K/s off it (a dd with bs=128k); that's about half of what
RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting
last week :-) last week :-)

View File

@ -78,9 +78,9 @@ IXP4xx provides two methods of accessing PCI memory space:
1) A direct mapped window from 0x48000000 to 0x4bffffff (64MB). 1) A direct mapped window from 0x48000000 to 0x4bffffff (64MB).
To access PCI via this space, we simply ioremap() the BAR To access PCI via this space, we simply ioremap() the BAR
into the kernel and we can use the standard read[bwl]/write[bwl] into the kernel and we can use the standard read[bwl]/write[bwl]
macros. This is the preffered method due to speed but it macros. This is the preferred method due to speed but it
limits the system to just 64MB of PCI memory. This can be limits the system to just 64MB of PCI memory. This can be
problamatic if using video cards and other memory-heavy devices. problematic if using video cards and other memory-heavy devices.
2) If > 64MB of memory space is required, the IXP4xx can be 2) If > 64MB of memory space is required, the IXP4xx can be
configured to use indirect registers to access PCI This allows configured to use indirect registers to access PCI This allows

View File

@ -5,7 +5,7 @@ Frequently asked questions about the sunxi clock system
This document contains useful bits of information that people tend to ask This document contains useful bits of information that people tend to ask
about the sunxi clock system, as well as accompanying ASCII art when adequate. about the sunxi clock system, as well as accompanying ASCII art when adequate.
Q: Why is the main 24MHz oscillator gatable? Wouldn't that break the Q: Why is the main 24MHz oscillator gateable? Wouldn't that break the
system? system?
A: The 24MHz oscillator allows gating to save power. Indeed, if gated A: The 24MHz oscillator allows gating to save power. Indeed, if gated

View File

@ -1,7 +1,7 @@
Software emulation of deprecated SWP instruction (CONFIG_SWP_EMULATE) Software emulation of deprecated SWP instruction (CONFIG_SWP_EMULATE)
--------------------------------------------------------------------- ---------------------------------------------------------------------
ARMv6 architecture deprecates use of the SWP/SWPB instructions, and recommeds ARMv6 architecture deprecates use of the SWP/SWPB instructions, and recommends
moving to the load-locked/store-conditional instructions LDREX and STREX. moving to the load-locked/store-conditional instructions LDREX and STREX.
ARMv7 multiprocessing extensions introduce the ability to disable these ARMv7 multiprocessing extensions introduce the ability to disable these

View File

@ -71,7 +71,7 @@ in <asm/tcm.h>. Using this interface it is possible to:
- Have the remaining TCM RAM added to a special - Have the remaining TCM RAM added to a special
allocation pool with gen_pool_create() and gen_pool_add() allocation pool with gen_pool_create() and gen_pool_add()
and provice tcm_alloc() and tcm_free() for this and provide tcm_alloc() and tcm_free() for this
memory. Such a heap is great for things like saving memory. Such a heap is great for things like saving
device state when shutting off device power domains. device state when shutting off device power domains.

View File

@ -155,7 +155,7 @@ the basic algorithm:
optimisation. optimisation.
If there are too many CPUs to read the currently_voting array in If there are too many CPUs to read the currently_voting array in
one transaction then multiple transations are still required. The one transaction then multiple transactions are still required. The
implementation uses a simple loop of word-sized loads for this implementation uses a simple loop of word-sized loads for this
case. The number of transactions is still fewer than would be case. The number of transactions is still fewer than would be
required if bytes were loaded individually. required if bytes were loaded individually.

View File

@ -45,7 +45,7 @@ APMT Signature Reserved (signature == "APMT")
**Arm Performance Monitoring Table** **Arm Performance Monitoring Table**
This table describes the properties of PMU support implmented by This table describes the properties of PMU support implemented by
components in the system. components in the system.
BERT Section 18.3 (signature == "BERT") BERT Section 18.3 (signature == "BERT")

View File

@ -99,7 +99,7 @@ to replace the kernel.
When a Linux driver or subsystem is first implemented using ACPI, it by When a Linux driver or subsystem is first implemented using ACPI, it by
definition ends up requiring a specific version of the ACPI specification definition ends up requiring a specific version of the ACPI specification
-- it's baseline. ACPI firmware must continue to work, even though it may -- its baseline. ACPI firmware must continue to work, even though it may
not be optimal, with the earliest kernel version that first provides support not be optimal, with the earliest kernel version that first provides support
for that baseline version of ACPI. There may be a need for additional drivers, for that baseline version of ACPI. There may be a need for additional drivers,
but adding new functionality (e.g., CPU power management) should not break but adding new functionality (e.g., CPU power management) should not break

View File

@ -106,7 +106,7 @@ History
a much improved version with changes all around. a much improved version with changes all around.
10-04-2004 Matjaz Breskvar (phoenix@bsemi.com) 10-04-2004 Matjaz Breskvar (phoenix@bsemi.com)
alot of bugfixes all over. a lot of bugfixes all over.
ethernet support, functional http and telnet servers. ethernet support, functional http and telnet servers.
running many standard linux apps. running many standard linux apps.
@ -114,7 +114,7 @@ History
port to 2.6.x port to 2.6.x
30-11-2004 Matjaz Breskvar (phoenix@bsemi.com) 30-11-2004 Matjaz Breskvar (phoenix@bsemi.com)
lots of bugfixes and enhancments. lots of bugfixes and enhancements.
added opencores framebuffer driver. added opencores framebuffer driver.
09-10-2010 Jonas Bonn (jonas@southpole.se) 09-10-2010 Jonas Bonn (jonas@southpole.se)

View File

@ -1105,7 +1105,7 @@ The kernel command line should not be located below the real-mode
code, nor should it be located in high memory. code, nor should it be located in high memory.
Sample Boot Configuartion Sample Boot Configuration
========================= =========================
As a sample configuration, assume the following layout of the real As a sample configuration, assume the following layout of the real

View File

@ -32,7 +32,7 @@ mechanisms to detect split locks and bus locks.
-------------------------------------- --------------------------------------
Beginning with the Tremont Atom CPU split lock operations may raise an Beginning with the Tremont Atom CPU split lock operations may raise an
Alignment Check (#AC) exception when a split lock operation is attemped. Alignment Check (#AC) exception when a split lock operation is attempted.
#DB exception for bus lock detection #DB exception for bus lock detection
------------------------------------ ------------------------------------

View File

@ -60,7 +60,7 @@ needed for exploiting MDS requires:
data data
The existence of such a construct in the kernel cannot be excluded with The existence of such a construct in the kernel cannot be excluded with
100% certainty, but the complexity involved makes it extremly unlikely. 100% certainty, but the complexity involved makes it extremely unlikely.
There is one exception, which is untrusted BPF. The functionality of There is one exception, which is untrusted BPF. The functionality of
untrusted BPF is limited, but it needs to be thoroughly investigated untrusted BPF is limited, but it needs to be thoroughly investigated

View File

@ -245,7 +245,7 @@ SGX will likely become unusable because the memory available to SGX is
limited. However, while this may be fatal to SGX, the rest of the kernel limited. However, while this may be fatal to SGX, the rest of the kernel
is unlikely to be impacted and should continue to work. is unlikely to be impacted and should continue to work.
As a result, when this happpens, user should stop running any new As a result, when this happens, user should stop running any new
SGX workloads, (or just any new workloads), and migrate all valuable SGX workloads, (or just any new workloads), and migrate all valuable
workloads. Although a machine reboot can recover all EPC memory, the bug workloads. Although a machine reboot can recover all EPC memory, the bug
should be reported to Linux developers. should be reported to Linux developers.

View File

@ -23,7 +23,7 @@ doing a Cached (WB) transaction and use the Memory RCW for un-cached
operations. operations.
For systems without an coherent cache controller, non-MX, we always For systems without an coherent cache controller, non-MX, we always
use the memory controllers RCW, thought non-MX controlers likely use the memory controllers RCW, though non-MX controllers likely
support the Internal Operation. support the Internal Operation.
CUSTOMER-WARNING: CUSTOMER-WARNING:

View File

@ -209,7 +209,7 @@ will require extra work due to the application tag.
sector must be set, and the bio should have all data pages sector must be set, and the bio should have all data pages
added. It is up to the caller to ensure that the bio does not added. It is up to the caller to ensure that the bio does not
change while I/O is in progress. change while I/O is in progress.
Complete bio with error if prepare failed for some reson. Complete bio with error if prepare failed for some reason.
5.3 Passing Existing Integrity Metadata 5.3 Passing Existing Integrity Metadata

View File

@ -238,7 +238,7 @@ The's IO is assigned by a unique tag, which is 1:1 mapping with IO
request of ``/dev/ublkb*``. request of ``/dev/ublkb*``.
UAPI structure of ``ublksrv_io_desc`` is defined for describing each IO from UAPI structure of ``ublksrv_io_desc`` is defined for describing each IO from
the driver. A fixed mmaped area (array) on ``/dev/ublkc*`` is provided for the driver. A fixed mmapped area (array) on ``/dev/ublkc*`` is provided for
exporting IO info to the server; such as IO offset, length, OP/flags and exporting IO info to the server; such as IO offset, length, OP/flags and
buffer address. Each ``ublksrv_io_desc`` instance can be indexed via queue id buffer address. Each ``ublksrv_io_desc`` instance can be indexed via queue id
and IO tag directly. and IO tag directly.

View File

@ -364,7 +364,7 @@ can be used to query the contents of cpumasks.
---- ----
Some example usages of these querying kfuncs were shown above. We will not Some example usages of these querying kfuncs were shown above. We will not
replicate those exmaples here. Note, however, that all of the aforementioned replicate those examples here. Note, however, that all of the aforementioned
kfuncs are tested in `tools/testing/selftests/bpf/progs/cpumask_success.c`_, so kfuncs are tested in `tools/testing/selftests/bpf/progs/cpumask_success.c`_, so
please take a look there if you're looking for more examples of how they can be please take a look there if you're looking for more examples of how they can be
used. used.

View File

@ -23,7 +23,7 @@ Introduction
The BPF map API has historically been the main way to expose data structures The BPF map API has historically been the main way to expose data structures
of various types for use within BPF programs. Some data structures fit naturally of various types for use within BPF programs. Some data structures fit naturally
with the map API (HASH, ARRAY), others less so. Consequentially, programs with the map API (HASH, ARRAY), others less so. Consequently, programs
interacting with the latter group of data structures can be hard to parse interacting with the latter group of data structures can be hard to parse
for kernel programmers without previous BPF experience. for kernel programmers without previous BPF experience.

View File

@ -243,7 +243,7 @@ proc entries
Error Injectable Functions Error Injectable Functions
-------------------------- --------------------------
This part is for the kenrel developers considering to add a function to This part is for the kernel developers considering to add a function to
ALLOW_ERROR_INJECTION() macro. ALLOW_ERROR_INJECTION() macro.
Requirements for the Error Injectable Functions Requirements for the Error Injectable Functions

View File

@ -9,7 +9,7 @@ works:
- userspace app like Xfbdev mmaps framebuffer - userspace app like Xfbdev mmaps framebuffer
- deferred IO and driver sets up fault and page_mkwrite handlers - deferred IO and driver sets up fault and page_mkwrite handlers
- userspace app tries to write to mmaped vaddress - userspace app tries to write to mmapped vaddress
- we get pagefault and reach fault handler - we get pagefault and reach fault handler
- fault handler finds and returns physical page - fault handler finds and returns physical page
- we get page_mkwrite where we add this page to a list - we get page_mkwrite where we add this page to a list

View File

@ -31,5 +31,5 @@ Missing Features
================ ================
(alias TODO list) (alias TODO list)
* 2D acceleratrion * 2D acceleration
* dual-head support * dual-head support

View File

@ -73,7 +73,7 @@ Module insertion
the device will be /dev/fb0. You can check this by doing a the device will be /dev/fb0. You can check this by doing a
cat /proc/fb. You can find a copy of con2fb in tools/ directory. cat /proc/fb. You can find a copy of con2fb in tools/ directory.
if you don't have another fb device, this step is superfluous, if you don't have another fb device, this step is superfluous,
as the console subsystem automagicaly binds ttys to the fb. as the console subsystem automagically binds ttys to the fb.
#. switch to the virtual console you just mapped. "tadaaa" ... #. switch to the virtual console you just mapped. "tadaaa" ...
Module removal Module removal

View File

@ -1,7 +1,7 @@
# #
# Feature name: thread-info-in-task # Feature name: thread-info-in-task
# Kconfig: THREAD_INFO_IN_TASK # Kconfig: THREAD_INFO_IN_TASK
# description: arch makes use of the core kernel facility to embedd thread_info in task_struct # description: arch makes use of the core kernel facility to embed thread_info in task_struct
# #
----------------------- -----------------------
| arch |status| | arch |status|

View File

@ -79,7 +79,7 @@ Options
cache=mode specifies a caching policy. By default, no caches are used. cache=mode specifies a caching policy. By default, no caches are used.
The mode can be specified as a bitmask or by using one of the The mode can be specified as a bitmask or by using one of the
prexisting common 'shortcuts'. preexisting common 'shortcuts'.
The bitmask is described below: (unspecified bits are reserved) The bitmask is described below: (unspecified bits are reserved)
========== ==================================================== ========== ====================================================

View File

@ -106,8 +106,8 @@ iocharset=xxx Use xxx as the name of the NLS translation table.
debug The driver will output debugging information to the syslog. debug The driver will output debugging information to the syslog.
============= =========================================================== ============= ===========================================================
How to Get Lastest Version How to Get Latest Version
========================== =========================
The latest version is currently available at: The latest version is currently available at:
<http://befs-driver.sourceforge.net/> <http://befs-driver.sourceforge.net/>

View File

@ -416,7 +416,7 @@ process is the target of an operation by some other process (SIGKILL for
example). example).
The subjective security holds the active security properties of a process, and The subjective security holds the active security properties of a process, and
may be overridden. This is not seen externally, and is used whan a process may be overridden. This is not seen externally, and is used when a process
acts upon another object, for example SIGKILLing another process or opening a acts upon another object, for example SIGKILLing another process or opening a
file. file.

View File

@ -59,7 +59,7 @@ A filesystem would typically have a volume cookie for each superblock.
The filesystem then acquires a cookie for each file within that volume using an The filesystem then acquires a cookie for each file within that volume using an
object key. Object keys are binary blobs and only need to be unique within object key. Object keys are binary blobs and only need to be unique within
their parent volume. The cache backend is reponsible for rendering the binary their parent volume. The cache backend is responsible for rendering the binary
blob into something it can use and may employ hash tables, trees or whatever to blob into something it can use and may employ hash tables, trees or whatever to
improve its ability to find an object. This is transparent to the network improve its ability to find an object. This is transparent to the network
filesystem. filesystem.
@ -91,7 +91,7 @@ actually required and it can use the fscache I/O API directly.
Volume Registration Volume Registration
=================== ===================
The first step for a network filsystem is to acquire a volume cookie for the The first step for a network filesystem is to acquire a volume cookie for the
volume it wants to access:: volume it wants to access::
struct fscache_volume * struct fscache_volume *
@ -119,7 +119,7 @@ is provided. If the coherency data doesn't match, the entire cache volume will
be invalidated. be invalidated.
This function can return errors such as EBUSY if the volume key is already in This function can return errors such as EBUSY if the volume key is already in
use by an acquired volume or ENOMEM if an allocation failure occured. It may use by an acquired volume or ENOMEM if an allocation failure occurred. It may
also return a NULL volume cookie if fscache is not enabled. It is safe to also return a NULL volume cookie if fscache is not enabled. It is safe to
pass a NULL cookie to any function that takes a volume cookie. This will pass a NULL cookie to any function that takes a volume cookie. This will
cause that function to do nothing. cause that function to do nothing.

View File

@ -253,7 +253,7 @@ to be used.
If binary attribute is readable and the config_item provides a If binary attribute is readable and the config_item provides a
ct_item_ops->read_bin_attribute() method, that method will be called ct_item_ops->read_bin_attribute() method, that method will be called
whenever userspace asks for a read(2) on the attribute. The converse whenever userspace asks for a read(2) on the attribute. The converse
will happen for write(2). The reads/writes are bufferred so only a will happen for write(2). The reads/writes are buffered so only a
single read/write will occur; the attributes' need not concern itself single read/write will occur; the attributes' need not concern itself
with it. with it.

View File

@ -291,7 +291,7 @@ The DAX code does not work correctly on architectures which have virtually
mapped caches such as ARM, MIPS and SPARC. mapped caches such as ARM, MIPS and SPARC.
Calling :c:func:`get_user_pages()` on a range of user memory that has been Calling :c:func:`get_user_pages()` on a range of user memory that has been
mmaped from a `DAX` file will fail when there are no 'struct page' to describe mmapped from a `DAX` file will fail when there are no 'struct page' to describe
those pages. This problem has been addressed in some device drivers those pages. This problem has been addressed in some device drivers
by adding optional struct page support for pages under the control of by adding optional struct page support for pages under the control of
the driver (see `CONFIG_NVDIMM_PFN` in ``drivers/nvdimm`` for an example of the driver (see `CONFIG_NVDIMM_PFN` in ``drivers/nvdimm`` for an example of

View File

@ -5,8 +5,8 @@ The Devpts Filesystem
===================== =====================
Each mount of the devpts filesystem is now distinct such that ptys Each mount of the devpts filesystem is now distinct such that ptys
and their indicies allocated in one mount are independent from ptys and their indices allocated in one mount are independent from ptys
and their indicies in all other mounts. and their indices in all other mounts.
All mounts of the devpts filesystem now create a ``/dev/pts/ptmx`` node All mounts of the devpts filesystem now create a ``/dev/pts/ptmx`` node
with permissions ``0000``. with permissions ``0000``.

View File

@ -772,7 +772,7 @@ The ``s_default_mount_opts`` field is any combination of the following:
* - 0x0010 * - 0x0010
- Do not support 32-bit UIDs. (EXT4_DEFM_UID16) - Do not support 32-bit UIDs. (EXT4_DEFM_UID16)
* - 0x0020 * - 0x0020
- All data and metadata are commited to the journal. - All data and metadata are committed to the journal.
(EXT4_DEFM_JMODE_DATA) (EXT4_DEFM_JMODE_DATA)
* - 0x0040 * - 0x0040
- All data are flushed to the disk before metadata are committed to the - All data are flushed to the disk before metadata are committed to the

View File

@ -359,7 +359,7 @@ errors=%s Specify f2fs behavior on critical errors. This supports modes:
====================== =============== =============== ======== ====================== =============== =============== ========
mode continue remount-ro panic mode continue remount-ro panic
====================== =============== =============== ======== ====================== =============== =============== ========
access ops normal noraml N/A access ops normal normal N/A
syscall errors -EIO -EROFS N/A syscall errors -EIO -EROFS N/A
mount option rw ro N/A mount option rw ro N/A
pending dir write keep keep N/A pending dir write keep keep N/A
@ -480,7 +480,7 @@ Note: please refer to the manpage of dump.f2fs(8) to get full option list.
sload.f2fs sload.f2fs
---------- ----------
The sload.f2fs gives a way to insert files and directories in the exisiting disk The sload.f2fs gives a way to insert files and directories in the existing disk
image. This tool is useful when building f2fs images given compiled files. image. This tool is useful when building f2fs images given compiled files.
Note: please refer to the manpage of sload.f2fs(8) to get full option list. Note: please refer to the manpage of sload.f2fs(8) to get full option list.
@ -792,7 +792,7 @@ Allocating disk space
as a method of optimally implementing that function. as a method of optimally implementing that function.
However, once F2FS receives ioctl(fd, F2FS_IOC_SET_PIN_FILE) in prior to However, once F2FS receives ioctl(fd, F2FS_IOC_SET_PIN_FILE) in prior to
fallocate(fd, DEFAULT_MODE), it allocates on-disk block addressess having fallocate(fd, DEFAULT_MODE), it allocates on-disk block addresses having
zero or random data, which is useful to the below scenario where: zero or random data, which is useful to the below scenario where:
1. create(fd) 1. create(fd)

View File

@ -78,7 +78,7 @@ The minimum hold time for each lock is the time after a remote lock
grant for which we ignore remote demote requests. This is in order to grant for which we ignore remote demote requests. This is in order to
prevent a situation where locks are being bounced around the cluster prevent a situation where locks are being bounced around the cluster
from node to node with none of the nodes making any progress. This from node to node with none of the nodes making any progress. This
tends to show up most with shared mmaped files which are being written tends to show up most with shared mmapped files which are being written
to by multiple nodes. By delaying the demotion in response to a to by multiple nodes. By delaying the demotion in response to a
remote callback, that gives the userspace program time to make remote callback, that gives the userspace program time to make
some progress before the pages are unmapped. some progress before the pages are unmapped.

View File

@ -36,7 +36,7 @@ and write down the mappings it will generate::
From a mathematical viewpoint ``U`` and ``K`` are well-ordered sets and an From a mathematical viewpoint ``U`` and ``K`` are well-ordered sets and an
idmapping is an order isomorphism from ``U`` into ``K``. So ``U`` and ``K`` are idmapping is an order isomorphism from ``U`` into ``K``. So ``U`` and ``K`` are
order isomorphic. In fact, ``U`` and ``K`` are always well-ordered subsets of order isomorphic. In fact, ``U`` and ``K`` are always well-ordered subsets of
the set of all possible ids useable on a given system. the set of all possible ids usable on a given system.
Looking at this mathematically briefly will help us highlight some properties Looking at this mathematically briefly will help us highlight some properties
that make it easier to understand how we can translate between idmappings. For that make it easier to understand how we can translate between idmappings. For
@ -47,7 +47,7 @@ example, we know that the inverse idmapping is an order isomorphism as well::
k10002 -> u24 k10002 -> u24
Given that we are dealing with order isomorphisms plus the fact that we're Given that we are dealing with order isomorphisms plus the fact that we're
dealing with subsets we can embedd idmappings into each other, i.e. we can dealing with subsets we can embed idmappings into each other, i.e. we can
sensibly translate between different idmappings. For example, assume we've been sensibly translate between different idmappings. For example, assume we've been
given the three idmappings:: given the three idmappings::
@ -60,7 +60,7 @@ and id ``k11000`` which has been generated by the first idmapping by mapping
Because we're dealing with order isomorphic subsets it is meaningful to ask Because we're dealing with order isomorphic subsets it is meaningful to ask
what id ``k11000`` corresponds to in the second or third idmapping. The what id ``k11000`` corresponds to in the second or third idmapping. The
straightfoward algorithm to use is to apply the inverse of the first idmapping, straightforward algorithm to use is to apply the inverse of the first idmapping,
mapping ``k11000`` up to ``u1000``. Afterwards, we can map ``u1000`` down using mapping ``k11000`` up to ``u1000``. Afterwards, we can map ``u1000`` down using
either the second idmapping mapping or third idmapping mapping. The second either the second idmapping mapping or third idmapping mapping. The second
idmapping would map ``u1000`` down to ``21000``. The third idmapping would map idmapping would map ``u1000`` down to ``21000``. The third idmapping would map
@ -367,7 +367,7 @@ So with the second step the kernel guarantees that a valid userspace id can be
written to disk. If it can't the kernel will refuse the creation request to not written to disk. If it can't the kernel will refuse the creation request to not
even remotely risk filesystem corruption. even remotely risk filesystem corruption.
The astute reader will have realized that this is simply a varation of the The astute reader will have realized that this is simply a variation of the
crossmapping algorithm we mentioned above in a previous section. First, the crossmapping algorithm we mentioned above in a previous section. First, the
kernel maps the caller's userspace id down into a kernel id according to the kernel maps the caller's userspace id down into a kernel id according to the
caller's idmapping and then maps that kernel id up according to the caller's idmapping and then maps that kernel id up according to the
@ -458,7 +458,7 @@ the kernel id that was created in the caller's idmapping. This has mainly two
consequences. consequences.
First, that we can't allow a caller to ultimately write to disk with another First, that we can't allow a caller to ultimately write to disk with another
userspace id. We could only do this if we were to mount the whole fileystem userspace id. We could only do this if we were to mount the whole filesystem
with the caller's or another idmapping. But that solution is limited to a few with the caller's or another idmapping. But that solution is limited to a few
filesystems and not very flexible. But this is a use-case that is pretty filesystems and not very flexible. But this is a use-case that is pretty
important in containerized workloads. important in containerized workloads.
@ -589,7 +589,7 @@ on their work machine.
In both cases changing ownership recursively has grave implications. The most In both cases changing ownership recursively has grave implications. The most
obvious one is that ownership is changed globally and permanently. In the home obvious one is that ownership is changed globally and permanently. In the home
directory case this change in ownership would even need to happen everytime the directory case this change in ownership would even need to happen every time the
user switches from their home to their work machine. For really large sets of user switches from their home to their work machine. For really large sets of
files this becomes increasingly costly. files this becomes increasingly costly.
@ -662,7 +662,7 @@ use the ``vfsuid_into_kuid()`` and ``vfsgid_into_kgid()`` helpers.
To illustrate why this helper currently exists, consider what happens when we To illustrate why this helper currently exists, consider what happens when we
change ownership of an inode from an idmapped mount. After we generated change ownership of an inode from an idmapped mount. After we generated
a ``vfsuid_t`` or ``vfsgid_t`` based on the mount idmapping we later commit to a ``vfsuid_t`` or ``vfsgid_t`` based on the mount idmapping we later commit to
this ``vfsuid_t`` or ``vfsgid_t`` to become the new filesytem wide ownership. this ``vfsuid_t`` or ``vfsgid_t`` to become the new filesystem wide ownership.
Thus, we are turning the ``vfsuid_t`` or ``vfsgid_t`` into a global ``kuid_t`` Thus, we are turning the ``vfsuid_t`` or ``vfsgid_t`` into a global ``kuid_t``
or ``kgid_t``. And this can be done by using ``vfsuid_into_kuid()`` and or ``kgid_t``. And this can be done by using ``vfsuid_into_kuid()`` and
``vfsgid_into_kgid()``. ``vfsgid_into_kgid()``.

View File

@ -155,7 +155,7 @@ conflicting writes or track dirty data and needs to put the acquired folio if
an error occurs after calling the helper. an error occurs after calling the helper.
The helpers manage the read request, calling back into the network filesystem The helpers manage the read request, calling back into the network filesystem
through the suppplied table of operations. Waits will be performed as through the supplied table of operations. Waits will be performed as
necessary before returning for helpers that are meant to be synchronous. necessary before returning for helpers that are meant to be synchronous.
If an error occurs, the ->free_request() will be called to clean up the If an error occurs, the ->free_request() will be called to clean up the

View File

@ -131,7 +131,7 @@ deployments, this construction is usually adequate. Often, however,
the node name by itself is not adequately unique, and can change the node name by itself is not adequately unique, and can change
unexpectedly. Problematic situations include: unexpectedly. Problematic situations include:
- NFS-root (diskless) clients, where the local DCHP server (or - NFS-root (diskless) clients, where the local DHCP server (or
equivalent) does not provide a unique host name. equivalent) does not provide a unique host name.
- "Containers" within a single Linux host. If each container has - "Containers" within a single Linux host. If each container has

View File

@ -78,7 +78,7 @@ Creating a Cache
include taking references to shared objects. include taking references to shared objects.
void update(struct cache_head \*orig, struct cache_head \*new) void update(struct cache_head \*orig, struct cache_head \*new)
Set the 'content' fileds in 'new' from 'orig'. Set the 'content' fields in 'new' from 'orig'.
int cache_show(struct seq_file \*m, struct cache_detail \*cd, struct cache_head \*h) int cache_show(struct seq_file \*m, struct cache_detail \*cd, struct cache_head \*h)
Optional. Used to provide a /proc file that lists the Optional. Used to provide a /proc file that lists the

View File

@ -29,7 +29,7 @@ The Linux kernel, at the moment, supports only the KRB5 mechanism, and
depends on GSSAPI extensions that are KRB5 specific. depends on GSSAPI extensions that are KRB5 specific.
GSSAPI is a complex library, and implementing it completely in kernel is GSSAPI is a complex library, and implementing it completely in kernel is
unwarranted. However GSSAPI operations are fundementally separable in 2 unwarranted. However GSSAPI operations are fundamentally separable in 2
parts: parts:
- initial context establishment - initial context establishment

View File

@ -231,7 +231,7 @@ file structures (nilfs_finfo), and per block structures (nilfs_binfo)::
The logs include regular files, directory files, symbolic link files The logs include regular files, directory files, symbolic link files
and several meta data files. The mata data files are the files used and several meta data files. The meta data files are the files used
to maintain file system meta data. The current version of NILFS2 uses to maintain file system meta data. The current version of NILFS2 uses
the following meta data files:: the following meta data files::

View File

@ -112,7 +112,7 @@ this table marked with no it means default is without **no**.
Todo list Todo list
========= =========
- Full journaling support over JBD. Currently journal replaying is supported - Full journaling support over JBD. Currently journal replaying is supported
which is not necessarily as effectice as JBD would be. which is not necessarily as effective as JBD would be.
References References
========== ==========

View File

@ -274,7 +274,7 @@ then contains:
of kcalloced memory. This memory is used as an array of pointers of kcalloced memory. This memory is used as an array of pointers
to each of the pages in the IO buffer through a call to get_user_pages. to each of the pages in the IO buffer through a call to get_user_pages.
* desc_array - a pointer to ``desc_count * (sizeof(struct orangefs_bufmap_desc))`` * desc_array - a pointer to ``desc_count * (sizeof(struct orangefs_bufmap_desc))``
bytes of kcalloced memory. This memory is further intialized: bytes of kcalloced memory. This memory is further initialized:
user_desc is the kernel's copy of the IO buffer's ORANGEFS_dev_map_desc user_desc is the kernel's copy of the IO buffer's ORANGEFS_dev_map_desc
structure. user_desc->ptr points to the IO buffer. structure. user_desc->ptr points to the IO buffer.

View File

@ -195,7 +195,7 @@ handle it in two different ways:
1. return EXDEV error: this error is returned by rename(2) when trying to 1. return EXDEV error: this error is returned by rename(2) when trying to
move a file or directory across filesystem boundaries. Hence move a file or directory across filesystem boundaries. Hence
applications are usually prepared to hande this error (mv(1) for example applications are usually prepared to handle this error (mv(1) for example
recursively copies the directory tree). This is the default behavior. recursively copies the directory tree). This is the default behavior.
2. If the "redirect_dir" feature is enabled, then the directory will be 2. If the "redirect_dir" feature is enabled, then the directory will be
@ -235,7 +235,7 @@ Mount options:
Redirects are not created and not followed. Redirects are not created and not followed.
- "redirect_dir=off": - "redirect_dir=off":
If "redirect_always_follow" is enabled in the kernel/module config, If "redirect_always_follow" is enabled in the kernel/module config,
this "off" traslates to "follow", otherwise it translates to "nofollow". this "off" translates to "follow", otherwise it translates to "nofollow".
When the NFS export feature is enabled, every copied up directory is When the NFS export feature is enabled, every copied up directory is
indexed by the file handle of the lower inode and a file handle of the indexed by the file handle of the lower inode and a file handle of the

View File

@ -177,7 +177,7 @@ settles down a bit.
**mandatory** **mandatory**
s_export_op is now required for exporting a filesystem. s_export_op is now required for exporting a filesystem.
isofs, ext2, ext3, resierfs, fat isofs, ext2, ext3, reiserfs, fat
can be used as examples of very different filesystems. can be used as examples of very different filesystems.
--- ---
@ -470,7 +470,7 @@ has been taken to VFS and filesystems need to provide a non-NULL
**mandatory** **mandatory**
If you implement your own ->llseek() you must handle SEEK_HOLE and If you implement your own ->llseek() you must handle SEEK_HOLE and
SEEK_DATA. You can hanle this by returning -EINVAL, but it would be nicer to SEEK_DATA. You can handle this by returning -EINVAL, but it would be nicer to
support it in some way. The generic handler assumes that the entire file is support it in some way. The generic handler assumes that the entire file is
data and there is a virtual hole at the end of the file. So if the provided data and there is a virtual hole at the end of the file. So if the provided
offset is less than i_size and SEEK_DATA is specified, return the same offset. offset is less than i_size and SEEK_DATA is specified, return the same offset.
@ -517,7 +517,7 @@ The witch is dead! Well, 2/3 of it, anyway. ->d_revalidate() and
->create() doesn't take ``struct nameidata *``; unlike the previous ->create() doesn't take ``struct nameidata *``; unlike the previous
two, it gets "is it an O_EXCL or equivalent?" boolean argument. Note that two, it gets "is it an O_EXCL or equivalent?" boolean argument. Note that
local filesystems can ignore tha argument - they are guaranteed that the local filesystems can ignore this argument - they are guaranteed that the
object doesn't exist. It's remote/distributed ones that might care... object doesn't exist. It's remote/distributed ones that might care...
--- ---

View File

@ -507,12 +507,12 @@ pressure if the memory is clean. Please note that the printed value might
be lower than the real value due to optimizations used in the current be lower than the real value due to optimizations used in the current
implementation. If this is not desirable please file a bug report. implementation. If this is not desirable please file a bug report.
"AnonHugePages" shows the ammount of memory backed by transparent hugepage. "AnonHugePages" shows the amount of memory backed by transparent hugepage.
"ShmemPmdMapped" shows the ammount of shared (shmem/tmpfs) memory backed by "ShmemPmdMapped" shows the amount of shared (shmem/tmpfs) memory backed by
huge pages. huge pages.
"Shared_Hugetlb" and "Private_Hugetlb" show the ammounts of memory backed by "Shared_Hugetlb" and "Private_Hugetlb" show the amounts of memory backed by
hugetlbfs page which is *not* counted in "RSS" or "PSS" field for historical hugetlbfs page which is *not* counted in "RSS" or "PSS" field for historical
reasons. And these are not included in {Shared,Private}_{Clean,Dirty} field. reasons. And these are not included in {Shared,Private}_{Clean,Dirty} field.
@ -561,7 +561,7 @@ encoded manner. The codes are the following:
mm mixed map area mm mixed map area
hg huge page advise flag hg huge page advise flag
nh no huge page advise flag nh no huge page advise flag
mg mergable advise flag mg mergeable advise flag
bt arm64 BTI guarded page bt arm64 BTI guarded page
mt arm64 MTE allocation tags are enabled mt arm64 MTE allocation tags are enabled
um userfaultfd missing tracking um userfaultfd missing tracking
@ -1081,7 +1081,7 @@ Writeback
AnonPages AnonPages
Non-file backed pages mapped into userspace page tables Non-file backed pages mapped into userspace page tables
Mapped Mapped
files which have been mmaped, such as libraries files which have been mmapped, such as libraries
Shmem Shmem
Total memory used by shared memory (shmem) and tmpfs Total memory used by shared memory (shmem) and tmpfs
KReclaimable KReclaimable
@ -2229,7 +2229,7 @@ are not related to tasks.
Chapter 5: Filesystem behavior Chapter 5: Filesystem behavior
============================== ==============================
Originally, before the advent of pid namepsace, procfs was a global file Originally, before the advent of pid namespace, procfs was a global file
system. It means that there was only one procfs instance in the system. system. It means that there was only one procfs instance in the system.
When pid namespace was added, a separate procfs instance was mounted in When pid namespace was added, a separate procfs instance was mounted in

View File

@ -135,7 +135,7 @@ inode.
Character and block special devices do not exist in QNX as those files Character and block special devices do not exist in QNX as those files
are handled by the QNX kernel/drivers and created in /dev independent of the are handled by the QNX kernel/drivers and created in /dev independent of the
underlaying filesystem. underlying filesystem.
Long filenames Long filenames
-------------- --------------

View File

@ -130,7 +130,7 @@ called SEQ_START_TOKEN; it can be used if you wish to instruct your
show() function (described below) to print a header at the top of the show() function (described below) to print a header at the top of the
output. SEQ_START_TOKEN should only be used if the offset is zero, output. SEQ_START_TOKEN should only be used if the offset is zero,
however. SEQ_START_TOKEN has no special meaning to the core seq_file however. SEQ_START_TOKEN has no special meaning to the core seq_file
code. It is provided as a convenience for a start() funciton to code. It is provided as a convenience for a start() function to
communicate with the next() and show() functions. communicate with the next() and show() functions.
The next function to implement is called, amazingly, next(); its job is to The next function to implement is called, amazingly, next(); its job is to
@ -217,7 +217,7 @@ between the calls to start() and stop(), so holding a lock during that time
is a reasonable thing to do. The seq_file code will also avoid taking any is a reasonable thing to do. The seq_file code will also avoid taking any
other locks while the iterator is active. other locks while the iterator is active.
The iterater value returned by start() or next() is guaranteed to be The iterator value returned by start() or next() is guaranteed to be
passed to a subsequent next() or stop() call. This allows resources passed to a subsequent next() or stop() call. This allows resources
such as locks that were taken to be reliably released. There is *no* such as locks that were taken to be reliably released. There is *no*
guarantee that the iterator will be passed to show(), though in practice guarantee that the iterator will be passed to show(), though in practice

View File

@ -130,7 +130,7 @@ marked as dirty are written to the flash to update the persisted index.
Journal Journal
~~~~~~~ ~~~~~~~
To avoid wearing out the flash, the index is only persisted (*commited*) when To avoid wearing out the flash, the index is only persisted (*committed*) when
certain conditions are met (eg. ``fsync(2)``). The journal is used to record certain conditions are met (eg. ``fsync(2)``). The journal is used to record
any changes (in form of inode nodes, data nodes etc.) between commits any changes (in form of inode nodes, data nodes etc.) between commits
of the index. During mount, the journal is read from the flash and replayed of the index. During mount, the journal is read from the flash and replayed

View File

@ -50,7 +50,7 @@ VFAT MOUNT OPTIONS
Normally utime(2) checks current process is owner of Normally utime(2) checks current process is owner of
the file, or it has CAP_FOWNER capability. But FAT the file, or it has CAP_FOWNER capability. But FAT
filesystem doesn't have uid/gid on disk, so normal filesystem doesn't have uid/gid on disk, so normal
check is too unflexible. With this option you can check is too inflexible. With this option you can
relax it. relax it.
**codepage=###** **codepage=###**

View File

@ -761,7 +761,7 @@ is an error during writeback, they expect that error to be reported when
a file sync request is made. After an error has been reported on one a file sync request is made. After an error has been reported on one
request, subsequent requests on the same file descriptor should return request, subsequent requests on the same file descriptor should return
0, unless further writeback errors have occurred since the previous file 0, unless further writeback errors have occurred since the previous file
syncronization. synchronization.
Ideally, the kernel would report errors only on file descriptions on Ideally, the kernel would report errors only on file descriptions on
which writes were done that subsequently failed to be written back. The which writes were done that subsequently failed to be written back. The

View File

@ -293,7 +293,7 @@ The seven phases are as follows:
Before starting repairs, the summary counters are checked and any necessary Before starting repairs, the summary counters are checked and any necessary
repairs are performed so that subsequent repairs will not fail the resource repairs are performed so that subsequent repairs will not fail the resource
reservation step due to wildly incorrect summary counters. reservation step due to wildly incorrect summary counters.
Unsuccesful repairs are requeued as long as forward progress on repairs is Unsuccessful repairs are requeued as long as forward progress on repairs is
made somewhere in the filesystem. made somewhere in the filesystem.
Free space in the filesystem is trimmed at the end of phase 4 if the Free space in the filesystem is trimmed at the end of phase 4 if the
filesystem is clean. filesystem is clean.
@ -542,7 +542,7 @@ ondisk structure.
Inspiration for quota and file link count repair strategies were drawn from Inspiration for quota and file link count repair strategies were drawn from
sections 2.12 ("Online Index Operations") through 2.14 ("Incremental View sections 2.12 ("Online Index Operations") through 2.14 ("Incremental View
Maintenace") of G. Graefe, `"Concurrent Queries and Updates in Summary Views Maintenance") of G. Graefe, `"Concurrent Queries and Updates in Summary Views
and Their Indexes" and Their Indexes"
<http://www.odbms.org/wp-content/uploads/2014/06/Increment-locks.pdf>`_, 2011. <http://www.odbms.org/wp-content/uploads/2014/06/Increment-locks.pdf>`_, 2011.
@ -605,7 +605,7 @@ functionality.
The cron job does not have this protection. The cron job does not have this protection.
- **Fuzz Kiddiez**: There are many people now who seem to think that running - **Fuzz Kiddiez**: There are many people now who seem to think that running
automated fuzz testing of ondisk artifacts to find mischevious behavior and automated fuzz testing of ondisk artifacts to find mischievous behavior and
spraying exploit code onto the public mailing list for instant zero-day spraying exploit code onto the public mailing list for instant zero-day
disclosure is somehow of some social benefit. disclosure is somehow of some social benefit.
In the view of this author, the benefit is realized only when the fuzz In the view of this author, the benefit is realized only when the fuzz
@ -1351,7 +1351,7 @@ If the leaf information exceeds a single filesystem block, a dabtree (also
rooted at block 0) is created to map hashes of the attribute names to leaf rooted at block 0) is created to map hashes of the attribute names to leaf
blocks in the attr fork. blocks in the attr fork.
Checking an extended attribute structure is not so straightfoward due to the Checking an extended attribute structure is not so straightforward due to the
lack of separation between attr blocks and index blocks. lack of separation between attr blocks and index blocks.
Scrub must read each block mapped by the attr fork and ignore the non-leaf Scrub must read each block mapped by the attr fork and ignore the non-leaf
blocks: blocks:
@ -1401,7 +1401,7 @@ If the free space has been separated and the second partition grows again
beyond one block, then a dabtree is used to map hashes of dirent names to beyond one block, then a dabtree is used to map hashes of dirent names to
directory data blocks. directory data blocks.
Checking a directory is pretty straightfoward: Checking a directory is pretty straightforward:
1. Walk the dabtree in the second partition (if present) to ensure that there 1. Walk the dabtree in the second partition (if present) to ensure that there
are no irregularities in the blocks or dabtree mappings that do not point to are no irregularities in the blocks or dabtree mappings that do not point to
@ -1524,7 +1524,7 @@ Only online fsck has this requirement of total consistency of AG metadata, and
should be relatively rare as compared to filesystem change operations. should be relatively rare as compared to filesystem change operations.
Online fsck coordinates with transaction chains as follows: Online fsck coordinates with transaction chains as follows:
* For each AG, maintain a count of intent items targetting that AG. * For each AG, maintain a count of intent items targeting that AG.
The count should be bumped whenever a new item is added to the chain. The count should be bumped whenever a new item is added to the chain.
The count should be dropped when the filesystem has locked the AG header The count should be dropped when the filesystem has locked the AG header
buffers and finished the work. buffers and finished the work.
@ -2102,7 +2102,7 @@ quicksort and a heapsort subalgorithm in the spirit of
kernel. kernel.
To sort records in a reasonably short amount of time, ``xfarray`` takes To sort records in a reasonably short amount of time, ``xfarray`` takes
advantage of the binary subpartitioning offered by quicksort, but it also uses advantage of the binary subpartitioning offered by quicksort, but it also uses
heapsort to hedge aginst performance collapse if the chosen quicksort pivots heapsort to hedge against performance collapse if the chosen quicksort pivots
are poor. are poor.
Both algorithms are (in general) O(n * lg(n)), but there is a wide performance Both algorithms are (in general) O(n * lg(n)), but there is a wide performance
gulf between the two implementations. gulf between the two implementations.
@ -2566,8 +2566,8 @@ old metadata blocks:
The transaction rolling in steps 2c and 3 represent a weakness in the repair The transaction rolling in steps 2c and 3 represent a weakness in the repair
algorithm, because a log flush and a crash before the end of the reap step can algorithm, because a log flush and a crash before the end of the reap step can
result in space leaking. result in space leaking.
Online repair functions minimize the chances of this occuring by using very Online repair functions minimize the chances of this occurring by using very
large transactions, which each can accomodate many thousands of block freeing large transactions, which each can accommodate many thousands of block freeing
instructions. instructions.
Repair moves on to reaping the old blocks, which will be presented in a Repair moves on to reaping the old blocks, which will be presented in a
subsequent :ref:`section<reaping>` after a few case studies of bulk loading. subsequent :ref:`section<reaping>` after a few case studies of bulk loading.
@ -5090,7 +5090,7 @@ This scan after validation of all filesystem metadata (except for the summary
counters) as phase 6. counters) as phase 6.
The scan starts by calling ``FS_IOC_GETFSMAP`` to scan the filesystem space map The scan starts by calling ``FS_IOC_GETFSMAP`` to scan the filesystem space map
to find areas that are allocated to file data fork extents. to find areas that are allocated to file data fork extents.
Gaps betweeen data fork extents that are smaller than 64k are treated as if Gaps between data fork extents that are smaller than 64k are treated as if
they were data fork extents to reduce the command setup overhead. they were data fork extents to reduce the command setup overhead.
When the space map scan accumulates a region larger than 32MB, a media When the space map scan accumulates a region larger than 32MB, a media
verification request is sent to the disk as a directio read of the raw block verification request is sent to the disk as a directio read of the raw block

View File

@ -378,7 +378,7 @@ The attributes defined are as follows.
sequential zone files. Failure to do so can result in write errors. sequential zone files. Failure to do so can result in write errors.
* **max_active_seq_files**: This attribute reports the maximum number of * **max_active_seq_files**: This attribute reports the maximum number of
sequential zone files that are in an active state, that is, sequential zone sequential zone files that are in an active state, that is, sequential zone
files that are partially writen (not empty nor full) or that have a zone that files that are partially written (not empty nor full) or that have a zone that
is explicitly open (which happens only if the *explicit-open* mount option is is explicitly open (which happens only if the *explicit-open* mount option is
used). This number is always equal to the maximum number of active zones that used). This number is always equal to the maximum number of active zones that
the device supports. A value of 0 means that the mounted device has no limit the device supports. A value of 0 means that the mounted device has no limit

View File

@ -55,7 +55,7 @@ quirk, a bug, or a bug-fix.
However this was discovered to be abused by other BIOS vendors to change However this was discovered to be abused by other BIOS vendors to change
completely unrelated code on completely unrelated systems. This prompted completely unrelated code on completely unrelated systems. This prompted
an evaluation of all of it's uses. This uncovered that they aren't needed an evaluation of all of its uses. This uncovered that they aren't needed
for any of the original reasons. As such, the kernel will not respond to for any of the original reasons. As such, the kernel will not respond to
any custom Linux-* strings by default. any custom Linux-* strings by default.

View File

@ -178,7 +178,7 @@ Multiple Display MPO
AMDGPU supports display MPO when using multiple displays; however, this feature AMDGPU supports display MPO when using multiple displays; however, this feature
behavior heavily relies on the compositor implementation. Keep in mind that behavior heavily relies on the compositor implementation. Keep in mind that
usespace can define different policies. For example, some OSes can use MPO to userspace can define different policies. For example, some OSes can use MPO to
protect the plane that handles the video playback; notice that we don't have protect the plane that handles the video playback; notice that we don't have
many limitations for a single display. Nonetheless, this manipulation can have many limitations for a single display. Nonetheless, this manipulation can have
many more restrictions for a multi-display scenario. The below example shows a many more restrictions for a multi-display scenario. The below example shows a

View File

@ -378,7 +378,7 @@ SCDC Helper Functions Reference
HDMI Infoframes Helper Reference HDMI Infoframes Helper Reference
================================ ================================
Strictly speaking this is not a DRM helper library but generally useable Strictly speaking this is not a DRM helper library but generally usable
by any driver interfacing with HDMI outputs like v4l or alsa drivers. by any driver interfacing with HDMI outputs like v4l or alsa drivers.
But it nicely fits into the overall topic of mode setting helper But it nicely fits into the overall topic of mode setting helper
libraries and hence is also included here. libraries and hence is also included here.

View File

@ -66,11 +66,11 @@ Composition Properties`_ and related chapters.
For the output routing the first step is encoders (represented by For the output routing the first step is encoders (represented by
:c:type:`struct drm_encoder <drm_encoder>`, see `Encoder Abstraction`_). Those :c:type:`struct drm_encoder <drm_encoder>`, see `Encoder Abstraction`_). Those
are really just internal artifacts of the helper libraries used to implement KMS are really just internal artifacts of the helper libraries used to implement KMS
drivers. Besides that they make it unecessarily more complicated for userspace drivers. Besides that they make it unnecessarily more complicated for userspace
to figure out which connections between a CRTC and a connector are possible, and to figure out which connections between a CRTC and a connector are possible, and
what kind of cloning is supported, they serve no purpose in the userspace API. what kind of cloning is supported, they serve no purpose in the userspace API.
Unfortunately encoders have been exposed to userspace, hence can't remove them Unfortunately encoders have been exposed to userspace, hence can't remove them
at this point. Futhermore the exposed restrictions are often wrongly set by at this point. Furthermore the exposed restrictions are often wrongly set by
drivers, and in many cases not powerful enough to express the real restrictions. drivers, and in many cases not powerful enough to express the real restrictions.
A CRTC can be connected to multiple encoders, and for an active CRTC there must A CRTC can be connected to multiple encoders, and for an active CRTC there must
be at least one encoder. be at least one encoder.
@ -260,7 +260,7 @@ Taken all together there's two consequences for the atomic design:
drm_crtc_state <drm_crtc_state>` for CRTCs and :c:type:`struct drm_crtc_state <drm_crtc_state>` for CRTCs and :c:type:`struct
drm_connector_state <drm_connector_state>` for connectors. These are the only drm_connector_state <drm_connector_state>` for connectors. These are the only
objects with userspace-visible and settable state. For internal state drivers objects with userspace-visible and settable state. For internal state drivers
can subclass these structures through embeddeding, or add entirely new state can subclass these structures through embedding, or add entirely new state
structures for their globally shared hardware functions, see :c:type:`struct structures for their globally shared hardware functions, see :c:type:`struct
drm_private_state<drm_private_state>`. drm_private_state<drm_private_state>`.

View File

@ -8,7 +8,7 @@ DRM drivers can choose to export partly standardised text output via the
`fops->show_fdinfo()` as part of the driver specific file operations registered `fops->show_fdinfo()` as part of the driver specific file operations registered
in the `struct drm_driver` object registered with the DRM core. in the `struct drm_driver` object registered with the DRM core.
One purpose of this output is to enable writing as generic as practicaly One purpose of this output is to enable writing as generic as practically
feasible `top(1)` like userspace monitoring tools. feasible `top(1)` like userspace monitoring tools.
Given the differences between various DRM drivers the specification of the Given the differences between various DRM drivers the specification of the
@ -119,7 +119,7 @@ drm-engine-<keystr> tag and shall contain the maximum frequency for the given
engine. Taken together with drm-cycles-<keystr>, this can be used to calculate engine. Taken together with drm-cycles-<keystr>, this can be used to calculate
percentage utilization of the engine, whereas drm-engine-<keystr> only reflects percentage utilization of the engine, whereas drm-engine-<keystr> only reflects
time active without considering what frequency the engine is operating as a time active without considering what frequency the engine is operating as a
percentage of it's maximum frequency. percentage of its maximum frequency.
Memory Memory
^^^^^^ ^^^^^^

View File

@ -304,10 +304,10 @@ reads of following commands. Actions issued between different contexts
and the only way to synchronize across contexts (even from the same and the only way to synchronize across contexts (even from the same
file descriptor) is through the use of fences. At least as far back as file descriptor) is through the use of fences. At least as far back as
Gen4, also have that a context carries with it a GPU HW context; Gen4, also have that a context carries with it a GPU HW context;
the HW context is essentially (most of atleast) the state of a GPU. the HW context is essentially (most of at least) the state of a GPU.
In addition to the ordering guarantees, the kernel will restore GPU In addition to the ordering guarantees, the kernel will restore GPU
state via HW context when commands are issued to a context, this saves state via HW context when commands are issued to a context, this saves
user space the need to restore (most of atleast) the GPU state at the user space the need to restore (most of at least) the GPU state at the
start of each batchbuffer. The non-deprecated ioctls to submit batchbuffer start of each batchbuffer. The non-deprecated ioctls to submit batchbuffer
work can pass that ID (in the lower bits of drm_i915_gem_execbuffer2::rsvd1) work can pass that ID (in the lower bits of drm_i915_gem_execbuffer2::rsvd1)
to identify what context to use with the command. to identify what context to use with the command.

View File

@ -17,7 +17,7 @@ Owner Module/Drivers,Group,Property Name,Type,Property Values,Object attached,De
,Virtual GPU,“suggested X”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an X offset for a connector ,Virtual GPU,“suggested X”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an X offset for a connector
,,“suggested Y”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an Y offset for a connector ,,“suggested Y”,RANGE,"Min=0, Max=0xffffffff",Connector,property to suggest an Y offset for a connector
,Optional,"""aspect ratio""",ENUM,"{ ""None"", ""4:3"", ""16:9"" }",Connector,TDB ,Optional,"""aspect ratio""",ENUM,"{ ""None"", ""4:3"", ""16:9"" }",Connector,TDB
i915,Generic,"""Broadcast RGB""",ENUM,"{ ""Automatic"", ""Full"", ""Limited 16:235"" }",Connector,"When this property is set to Limited 16:235 and CTM is set, the hardware will be programmed with the result of the multiplication of CTM by the limited range matrix to ensure the pixels normaly in the range 0..1.0 are remapped to the range 16/255..235/255." i915,Generic,"""Broadcast RGB""",ENUM,"{ ""Automatic"", ""Full"", ""Limited 16:235"" }",Connector,"When this property is set to Limited 16:235 and CTM is set, the hardware will be programmed with the result of the multiplication of CTM by the limited range matrix to ensure the pixels normally in the range 0..1.0 are remapped to the range 16/255..235/255."
,,“audio”,ENUM,"{ ""force-dvi"", ""off"", ""auto"", ""on"" }",Connector,TBD ,,“audio”,ENUM,"{ ""force-dvi"", ""off"", ""auto"", ""on"" }",Connector,TBD
,SDVO-TV,“mode”,ENUM,"{ ""NTSC_M"", ""NTSC_J"", ""NTSC_443"", ""PAL_B"" } etc.",Connector,TBD ,SDVO-TV,“mode”,ENUM,"{ ""NTSC_M"", ""NTSC_J"", ""NTSC_443"", ""PAL_B"" } etc.",Connector,TBD
,,"""left_margin""",RANGE,"Min=0, Max= SDVO dependent",Connector,TBD ,,"""left_margin""",RANGE,"Min=0, Max= SDVO dependent",Connector,TBD

1 Owner Module/Drivers Group Property Name Type Property Values Object attached Description/Restrictions
17 Virtual GPU “suggested X” RANGE Min=0, Max=0xffffffff Connector property to suggest an X offset for a connector
18 “suggested Y” RANGE Min=0, Max=0xffffffff Connector property to suggest an Y offset for a connector
19 Optional "aspect ratio" ENUM { "None", "4:3", "16:9" } Connector TDB
20 i915 Generic "Broadcast RGB" ENUM { "Automatic", "Full", "Limited 16:235" } Connector When this property is set to Limited 16:235 and CTM is set, the hardware will be programmed with the result of the multiplication of CTM by the limited range matrix to ensure the pixels normaly in the range 0..1.0 are remapped to the range 16/255..235/255. When this property is set to Limited 16:235 and CTM is set, the hardware will be programmed with the result of the multiplication of CTM by the limited range matrix to ensure the pixels normally in the range 0..1.0 are remapped to the range 16/255..235/255.
21 “audio” ENUM { "force-dvi", "off", "auto", "on" } Connector TBD
22 SDVO-TV “mode” ENUM { "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc. Connector TBD
23 "left_margin" RANGE Min=0, Max= SDVO dependent Connector TBD

View File

@ -328,7 +328,7 @@ of course wed better share as much as possible between different products. To
achieve this, split the komeda device into two layers: CORE and CHIP. achieve this, split the komeda device into two layers: CORE and CHIP.
- CORE: for common features and capabilities handling. - CORE: for common features and capabilities handling.
- CHIP: for register programing and HW specific feature (limitation) handling. - CHIP: for register programming and HW specific feature (limitation) handling.
CORE can access CHIP by three chip function structures: CORE can access CHIP by three chip function structures:
@ -481,7 +481,7 @@ Build komeda to be a Linux module driver
Now we have two level devices: Now we have two level devices:
- komeda_dev: describes the real display hardware. - komeda_dev: describes the real display hardware.
- komeda_kms_dev: attachs or connects komeda_dev to DRM-KMS. - komeda_kms_dev: attaches or connects komeda_dev to DRM-KMS.
All komeda operations are supplied or operated by komeda_dev or komeda_kms_dev, All komeda operations are supplied or operated by komeda_dev or komeda_kms_dev,
the module driver is only a simple wrapper to pass the Linux command the module driver is only a simple wrapper to pass the Linux command

View File

@ -23,7 +23,7 @@ module
The module that generated the crashdump. The module that generated the crashdump.
time time
The kernel time at crash formated as seconds.microseconds. The kernel time at crash formatted as seconds.microseconds.
comm comm
Comm string for the binary that generated the fault. Comm string for the binary that generated the fault.

View File

@ -37,7 +37,7 @@ i915 with the DRM scheduler is:
* Watchdog hooks into DRM scheduler * Watchdog hooks into DRM scheduler
* Lots of complexity of the GuC backend can be pulled out once * Lots of complexity of the GuC backend can be pulled out once
integrated with DRM scheduler (e.g. state machine gets integrated with DRM scheduler (e.g. state machine gets
simplier, locking gets simplier, etc...) simpler, locking gets simpler, etc...)
* Execlists backend will minimum required to hook in the DRM scheduler * Execlists backend will minimum required to hook in the DRM scheduler
* Legacy interface * Legacy interface
* Features like timeslicing / preemption / virtual engines would * Features like timeslicing / preemption / virtual engines would

View File

@ -90,7 +90,7 @@ submission, they need only one dma-resv fence list updated. Thus, the fast
path (where required mappings are already bound) submission latency is O(1) path (where required mappings are already bound) submission latency is O(1)
w.r.t the number of VM private BOs. w.r.t the number of VM private BOs.
VM_BIND locking hirarchy VM_BIND locking hierarchy
------------------------- -------------------------
The locking design here supports the older (execlist based) execbuf mode, the The locking design here supports the older (execlist based) execbuf mode, the
newer VM_BIND mode, the VM_BIND mode with GPU page faults and possible future newer VM_BIND mode, the VM_BIND mode with GPU page faults and possible future

View File

@ -65,7 +65,7 @@ Clean up the clipped coordination confusion around planes
--------------------------------------------------------- ---------------------------------------------------------
We have a helper to get this right with drm_plane_helper_check_update(), but We have a helper to get this right with drm_plane_helper_check_update(), but
it's not consistently used. This should be fixed, preferrably in the atomic it's not consistently used. This should be fixed, preferably in the atomic
helpers (and drivers then moved over to clipped coordinates). Probably the helpers (and drivers then moved over to clipped coordinates). Probably the
helper should also be moved from drm_plane_helper.c to the atomic helpers, to helper should also be moved from drm_plane_helper.c to the atomic helpers, to
avoid confusion - the other helpers in that file are all deprecated legacy avoid confusion - the other helpers in that file are all deprecated legacy
@ -181,13 +181,13 @@ reversed.
To solve this we need one standard per-object locking mechanism, which is To solve this we need one standard per-object locking mechanism, which is
dma_resv_lock(). This lock needs to be called as the outermost lock, with all dma_resv_lock(). This lock needs to be called as the outermost lock, with all
other driver specific per-object locks removed. The problem is tha rolling out other driver specific per-object locks removed. The problem is that rolling out
the actual change to the locking contract is a flag day, due to struct dma_buf the actual change to the locking contract is a flag day, due to struct dma_buf
buffer sharing. buffer sharing.
Level: Expert Level: Expert
Convert logging to drm_* functions with drm_device paramater Convert logging to drm_* functions with drm_device parameter
------------------------------------------------------------ ------------------------------------------------------------
For drivers which could have multiple instances, it is necessary to For drivers which could have multiple instances, it is necessary to
@ -244,7 +244,7 @@ Level: Advanced
Benchmark and optimize blitting and format-conversion function Benchmark and optimize blitting and format-conversion function
-------------------------------------------------------------- --------------------------------------------------------------
Drawing to dispay memory quickly is crucial for many applications' Drawing to display memory quickly is crucial for many applications'
performance. performance.
On at least x86-64, sys_imageblit() is significantly slower than On at least x86-64, sys_imageblit() is significantly slower than

View File

@ -345,7 +345,7 @@ PMBUS_NO_CAPABILITY
Some PMBus chips don't respond with valid data when reading the CAPABILITY Some PMBus chips don't respond with valid data when reading the CAPABILITY
register. For such chips, this flag should be set so that the PMBus core register. For such chips, this flag should be set so that the PMBus core
driver doesn't use CAPABILITY to determine it's behavior. driver doesn't use CAPABILITY to determine its behavior.
PMBUS_READ_STATUS_AFTER_FAILED_CHECK PMBUS_READ_STATUS_AFTER_FAILED_CHECK

View File

@ -49,7 +49,7 @@ OP DATA
== ==== == ====
The 2B, LEN and CS fields have disappeared, probably because USB handles The 2B, LEN and CS fields have disappeared, probably because USB handles
frames and data corruption is handled or unsignificant. frames and data corruption is handled or insignificant.
First, I describe effects that are sent by the device to the computer First, I describe effects that are sent by the device to the computer

View File

@ -383,7 +383,7 @@ Finger Tracking
--------------- ---------------
The process of finger tracking, i.e., to assign a unique trackingID to each The process of finger tracking, i.e., to assign a unique trackingID to each
initiated contact on the surface, is a Euclidian Bipartite Matching initiated contact on the surface, is a Euclidean Bipartite Matching
problem. At each event synchronization, the set of actual contacts is problem. At each event synchronization, the set of actual contacts is
matched to the set of contacts from the previous synchronization. A full matched to the set of contacts from the previous synchronization. A full
implementation can be found in [#f3]_. implementation can be found in [#f3]_.

View File

@ -40,7 +40,7 @@ Principally, the reliable stacktrace function must ensure that either:
.. note:: .. note::
In some cases it is legitimate to omit specific functions from the trace, In some cases it is legitimate to omit specific functions from the trace,
but all other functions must be reported. These cases are described in but all other functions must be reported. These cases are described in
futher detail below. further detail below.
Secondly, the reliable stacktrace function must be robust to cases where Secondly, the reliable stacktrace function must be robust to cases where
the stack or other unwind state is corrupt or otherwise unreliable. The the stack or other unwind state is corrupt or otherwise unreliable. The

View File

@ -29,7 +29,7 @@ the validator will shoot a splat if incorrect.
A lock-class's behavior is constructed by its instances collectively: A lock-class's behavior is constructed by its instances collectively:
when the first instance of a lock-class is used after bootup the class when the first instance of a lock-class is used after bootup the class
gets registered, then all (subsequent) instances will be mapped to the gets registered, then all (subsequent) instances will be mapped to the
class and hence their usages and dependecies will contribute to those of class and hence their usages and dependencies will contribute to those of
the class. A lock-class does not go away when a lock instance does, but the class. A lock-class does not go away when a lock instance does, but
it can be removed if the memory space of the lock class (static or it can be removed if the memory space of the lock class (static or
dynamic) is reclaimed, this happens for example when a module is dynamic) is reclaimed, this happens for example when a module is
@ -105,7 +105,7 @@ exact case is for the lock as of the reporting time.
+--------------+-------------+--------------+ +--------------+-------------+--------------+
The character '-' suggests irq is disabled because if otherwise the The character '-' suggests irq is disabled because if otherwise the
charactor '?' would have been shown instead. Similar deduction can be character '?' would have been shown instead. Similar deduction can be
applied for '+' too. applied for '+' too.
Unused locks (e.g., mutexes) cannot be part of the cause of an error. Unused locks (e.g., mutexes) cannot be part of the cause of an error.

View File

@ -113,7 +113,7 @@ stutter
without pausing. without pausing.
shuffle_interval shuffle_interval
The number of seconds to keep the test threads affinitied The number of seconds to keep the test threads affinitized
to a particular subset of the CPUs, defaults to 3 seconds. to a particular subset of the CPUs, defaults to 3 seconds.
Used in conjunction with test_no_idle_hz. Used in conjunction with test_no_idle_hz.

View File

@ -500,7 +500,7 @@ caveats also apply to bit spinlocks.
Some bit spinlocks are replaced with regular spinlock_t for PREEMPT_RT Some bit spinlocks are replaced with regular spinlock_t for PREEMPT_RT
using conditional (#ifdef'ed) code changes at the usage site. In contrast, using conditional (#ifdef'ed) code changes at the usage site. In contrast,
usage-site changes are not needed for the spinlock_t substitution. usage-site changes are not needed for the spinlock_t substitution.
Instead, conditionals in header files and the core locking implemementation Instead, conditionals in header files and the core locking implementation
enable the compiler to do the substitution transparently. enable the compiler to do the substitution transparently.

View File

@ -417,7 +417,7 @@ entries. Any attempt to access the swap entry results in a fault which is
resovled by replacing the entry with the original mapping. A driver gets resovled by replacing the entry with the original mapping. A driver gets
notified that the mapping has been changed by MMU notifiers, after which point notified that the mapping has been changed by MMU notifiers, after which point
it will no longer have exclusive access to the page. Exclusive access is it will no longer have exclusive access to the page. Exclusive access is
guranteed to last until the driver drops the page lock and page reference, at guaranteed to last until the driver drops the page lock and page reference, at
which point any CPU faults on the page may proceed as described. which point any CPU faults on the page may proceed as described.
Memory cgroup (memcg) and rss accounting Memory cgroup (memcg) and rss accounting

View File

@ -48,7 +48,7 @@ of applications. KVM support requires a recent qemu-kvm release.
For the KVM use there was need for a new signal type so that For the KVM use there was need for a new signal type so that
KVM can inject the machine check into the guest with the proper KVM can inject the machine check into the guest with the proper
address. This in theory allows other applications to handle address. This in theory allows other applications to handle
memory failures too. The expection is that near all applications memory failures too. The expectation is that most applications
won't do that, but some very specialized ones might. won't do that, but some very specialized ones might.
Failure recovery modes Failure recovery modes

View File

@ -180,7 +180,7 @@ The following events (counters) can be used to monitor page migration.
4. THP_MIGRATION_FAIL: A THP could not be migrated nor it could be split. 4. THP_MIGRATION_FAIL: A THP could not be migrated nor it could be split.
5. THP_MIGRATION_SPLIT: A THP was migrated, but not as such: first, the THP had 5. THP_MIGRATION_SPLIT: A THP was migrated, but not as such: first, the THP had
to be split. After splitting, a migration retry was used for it's sub-pages. to be split. After splitting, a migration retry was used for its sub-pages.
THP_MIGRATION_* events also update the appropriate PGMIGRATE_SUCCESS or THP_MIGRATION_* events also update the appropriate PGMIGRATE_SUCCESS or
PGMIGRATE_FAIL events. For example, a THP migration failure will cause both PGMIGRATE_FAIL events. For example, a THP migration failure will cause both

View File

@ -463,7 +463,7 @@ can request that a region of memory be mlocked by supplying the MAP_LOCKED flag
to the mmap() call. There is one important and subtle difference here, though. to the mmap() call. There is one important and subtle difference here, though.
mmap() + mlock() will fail if the range cannot be faulted in (e.g. because mmap() + mlock() will fail if the range cannot be faulted in (e.g. because
mm_populate fails) and returns with ENOMEM while mmap(MAP_LOCKED) will not fail. mm_populate fails) and returns with ENOMEM while mmap(MAP_LOCKED) will not fail.
The mmaped area will still have properties of the locked area - pages will not The mmapped area will still have properties of the locked area - pages will not
get swapped out - but major page faults to fault memory in might still happen. get swapped out - but major page faults to fault memory in might still happen.
Furthermore, any mmap() call or brk() call that expands the heap by a task Furthermore, any mmap() call or brk() call that expands the heap by a task

View File

@ -11,7 +11,7 @@ HugeTLB
This section is to explain how HugeTLB Vmemmap Optimization (HVO) works. This section is to explain how HugeTLB Vmemmap Optimization (HVO) works.
The ``struct page`` structures are used to describe a physical page frame. By The ``struct page`` structures are used to describe a physical page frame. By
default, there is a one-to-one mapping from a page frame to it's corresponding default, there is a one-to-one mapping from a page frame to its corresponding
``struct page``. ``struct page``.
HugeTLB pages consist of multiple base page size pages and is supported by many HugeTLB pages consist of multiple base page size pages and is supported by many

View File

@ -41,7 +41,7 @@ properties:
description: Name of the define for the family name. description: Name of the define for the family name.
type: string type: string
c-version-name: c-version-name:
description: Name of the define for the verion of the family. description: Name of the define for the version of the family.
type: string type: string
max-by-define: max-by-define:
description: Makes the number of attributes and commands be specified by a define, not an enum value. description: Makes the number of attributes and commands be specified by a define, not an enum value.

View File

@ -41,7 +41,7 @@ properties:
description: Name of the define for the family name. description: Name of the define for the family name.
type: string type: string
c-version-name: c-version-name:
description: Name of the define for the verion of the family. description: Name of the define for the version of the family.
type: string type: string
max-by-define: max-by-define:
description: Makes the number of attributes and commands be specified by a define, not an enum value. description: Makes the number of attributes and commands be specified by a define, not an enum value.

View File

@ -1636,7 +1636,7 @@ your init script::
----------------------------------------- -----------------------------------------
This section applies to distros which use /etc/network/interfaces file This section applies to distros which use /etc/network/interfaces file
to describe network interface configuration, most notably Debian and it's to describe network interface configuration, most notably Debian and its
derivatives. derivatives.
The ifup and ifdown commands on Debian don't support bonding out of The ifup and ifdown commands on Debian don't support bonding out of

View File

@ -321,9 +321,9 @@ API allows to configure following rate object's parameters:
Allows for usage of Weighted Fair Queuing arbitration scheme among Allows for usage of Weighted Fair Queuing arbitration scheme among
siblings. This arbitration scheme can be used simultaneously with the siblings. This arbitration scheme can be used simultaneously with the
strict priority. As a node is configured with a higher rate it gets more strict priority. As a node is configured with a higher rate it gets more
BW relative to it's siblings. Values are relative like a percentage BW relative to its siblings. Values are relative like a percentage
points, they basically tell how much BW should node take relative to points, they basically tell how much BW should node take relative to
it's siblings. its siblings.
``parent`` ``parent``
Parent node name. Parent node rate limits are considered as additional limits Parent node name. Parent node rate limits are considered as additional limits
@ -343,7 +343,7 @@ Arbitration flow from the high level:
#. If group of nodes have the same priority perform WFQ arbitration on #. If group of nodes have the same priority perform WFQ arbitration on
that subgroup. Use ``tx_weight`` as a parameter for this arbitration. that subgroup. Use ``tx_weight`` as a parameter for this arbitration.
#. Select the winner node, and continue arbitration flow among it's children, #. Select the winner node, and continue arbitration flow among its children,
until leaf node is reached, and the winner is established. until leaf node is reached, and the winner is established.
#. If all the nodes from the highest priority sub-group are satisfied, or #. If all the nodes from the highest priority sub-group are satisfied, or

View File

@ -755,7 +755,7 @@ AF_PACKET TPACKET_V3 example
============================ ============================
AF_PACKET's TPACKET_V3 ring buffer can be configured to use non-static frame AF_PACKET's TPACKET_V3 ring buffer can be configured to use non-static frame
sizes by doing it's own memory management. It is based on blocks where polling sizes by doing its own memory management. It is based on blocks where polling
works on a per block basis instead of per ring as in TPACKET_V2 and predecessor. works on a per block basis instead of per ring as in TPACKET_V2 and predecessor.
It is said that TPACKET_V3 brings the following benefits: It is said that TPACKET_V3 brings the following benefits:

View File

@ -87,9 +87,9 @@ CONFIG_ENERGY_MODEL must be enabled to use the EM framework.
Registration of 'advanced' EM Registration of 'advanced' EM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'advanced' EM gets it's name due to the fact that the driver is allowed The 'advanced' EM gets its name due to the fact that the driver is allowed
to provide more precised power model. It's not limited to some implemented math to provide more precised power model. It's not limited to some implemented math
formula in the framework (like it's in 'simple' EM case). It can better reflect formula in the framework (like it is in 'simple' EM case). It can better reflect
the real power measurements performed for each performance state. Thus, this the real power measurements performed for each performance state. Thus, this
registration method should be preferred in case considering EM static power registration method should be preferred in case considering EM static power
(leakage) is important. (leakage) is important.

View File

@ -6,7 +6,7 @@ DSCR register in powerpc allows user to have some control of prefetch of data
stream in the processor. Please refer to the ISA documents or related manual stream in the processor. Please refer to the ISA documents or related manual
for more detailed information regarding how to use this DSCR to attain this for more detailed information regarding how to use this DSCR to attain this
control of the prefetches . This document here provides an overview of kernel control of the prefetches . This document here provides an overview of kernel
support for DSCR, related kernel objects, it's functionalities and exported support for DSCR, related kernel objects, its functionalities and exported
user interface. user interface.
(A) Data Structures: (A) Data Structures:

View File

@ -40,7 +40,7 @@ checks can be delayed until after the MMU is set is up, and we can just not
instrument any code that runs with translations off after booting. This is the instrument any code that runs with translations off after booting. This is the
current approach. current approach.
To avoid this limitiation, the KASAN shadow would have to be placed inside the To avoid this limitation, the KASAN shadow would have to be placed inside the
linear mapping, using the same high-bits trick we use for the rest of the linear linear mapping, using the same high-bits trick we use for the rest of the linear
mapping. This is tricky: mapping. This is tricky:

View File

@ -22,7 +22,7 @@ privileged operations. Currently there are two PAPR compliant hypervisors:
On PPC64 arch a guest kernel running on top of a PAPR hypervisor is called On PPC64 arch a guest kernel running on top of a PAPR hypervisor is called
a *pSeries guest*. A pseries guest runs in a supervisor mode (HV=0) and must a *pSeries guest*. A pseries guest runs in a supervisor mode (HV=0) and must
issue hypercalls to the hypervisor whenever it needs to perform an action issue hypercalls to the hypervisor whenever it needs to perform an action
that is hypervisor priviledged [3]_ or for other services managed by the that is hypervisor privileged [3]_ or for other services managed by the
hypervisor. hypervisor.
Hence a Hypercall (hcall) is essentially a request by the pseries guest Hence a Hypercall (hcall) is essentially a request by the pseries guest

View File

@ -232,11 +232,11 @@ For example, to match the 8323, revision 1.0::
'extended_modes' is a bitfield that defines special functionality which has an 'extended_modes' is a bitfield that defines special functionality which has an
impact on the device drivers. Each bit has its own impact and has special impact on the device drivers. Each bit has its own impact and has special
instructions for the driver associated with it. This field is stored in instructions for the driver associated with it. This field is stored in
the QE library and available to any driver that calles qe_get_firmware_info(). the QE library and available to any driver that calls qe_get_firmware_info().
'vtraps' is an array of 8 words that contain virtual trap values for each 'vtraps' is an array of 8 words that contain virtual trap values for each
virtual traps. As with 'extended_modes', this field is stored in the QE virtual traps. As with 'extended_modes', this field is stored in the QE
library and available to any driver that calles qe_get_firmware_info(). library and available to any driver that calls qe_get_firmware_info().
'microcode' (type: struct qe_microcode): 'microcode' (type: struct qe_microcode):
For each RISC processor there is one 'microcode' structure. The first For each RISC processor there is one 'microcode' structure. The first

View File

@ -46,7 +46,7 @@ request queue into the application's virtual address space.
The application can then submit one or more requests to the engine by The application can then submit one or more requests to the engine by
using copy/paste instructions and pasting the CRBs to the virtual address using copy/paste instructions and pasting the CRBs to the virtual address
(aka paste_address) returned by mmap(). User space can close the (aka paste_address) returned by mmap(). User space can close the
established connection or send window by closing the file descriptior established connection or send window by closing the file descriptor
(close(fd)) or upon the process exit. (close(fd)) or upon the process exit.
Note that applications can send several requests with the same window or Note that applications can send several requests with the same window or
@ -240,7 +240,7 @@ issued. This signal returns with the following siginfo struct::
siginfo.si_signo = SIGSEGV; siginfo.si_signo = SIGSEGV;
siginfo.si_errno = EFAULT; siginfo.si_errno = EFAULT;
siginfo.si_code = SEGV_MAPERR; siginfo.si_code = SEGV_MAPERR;
siginfo.si_addr = CSB adress; siginfo.si_addr = CSB address;
In the case of multi-thread applications, NX send windows can be shared In the case of multi-thread applications, NX send windows can be shared
across all threads. For example, a child thread can open a send window, across all threads. For example, a child thread can open a send window,

View File

@ -208,7 +208,7 @@ Not every problem needs a new ioctl:
it's much quicker to push a driver-private interface than engaging in it's much quicker to push a driver-private interface than engaging in
lengthy discussions for a more generic solution. And occasionally doing a lengthy discussions for a more generic solution. And occasionally doing a
private interface to spearhead a new concept is what's required. But in the private interface to spearhead a new concept is what's required. But in the
end, once the generic interface comes around you'll end up maintainer two end, once the generic interface comes around you'll end up maintaining two
interfaces. Indefinitely. interfaces. Indefinitely.
* Consider other interfaces than ioctls. A sysfs attribute is much better for * Consider other interfaces than ioctls. A sysfs attribute is much better for

View File

@ -29,7 +29,7 @@ All documents are cataloged with the following fields: the document's
The documents on each section of this document are ordered by its The documents on each section of this document are ordered by its
published date, from the newest to the oldest. The maintainer(s) should published date, from the newest to the oldest. The maintainer(s) should
periodically retire resources as they become obsolte or outdated; with periodically retire resources as they become obsolete or outdated; with
the exception of foundational books. the exception of foundational books.
Docs at the Linux Kernel tree Docs at the Linux Kernel tree

View File

@ -88,11 +88,11 @@ The following keys are defined:
always extremely slow. always extremely slow.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_SLOW`: Misaligned accesses are supported * :c:macro:`RISCV_HWPROBE_MISALIGNED_SLOW`: Misaligned accesses are supported
in hardware, but are slower than the cooresponding aligned accesses in hardware, but are slower than the corresponding aligned accesses
sequences. sequences.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_FAST`: Misaligned accesses are supported * :c:macro:`RISCV_HWPROBE_MISALIGNED_FAST`: Misaligned accesses are supported
in hardware and are faster than the cooresponding aligned accesses in hardware and are faster than the corresponding aligned accesses
sequences. sequences.
* :c:macro:`RISCV_HWPROBE_MISALIGNED_UNSUPPORTED`: Misaligned accesses are * :c:macro:`RISCV_HWPROBE_MISALIGNED_UNSUPPORTED`: Misaligned accesses are

View File

@ -13,7 +13,7 @@ order to support the use of the RISC-V Vector Extension.
Two new prctl() calls are added to allow programs to manage the enablement Two new prctl() calls are added to allow programs to manage the enablement
status for the use of Vector in userspace. The intended usage guideline for status for the use of Vector in userspace. The intended usage guideline for
these interfaces is to give init systems a way to modify the availability of V these interfaces is to give init systems a way to modify the availability of V
for processes running under its domain. Calling thess interfaces is not for processes running under its domain. Calling these interfaces is not
recommended in libraries routines because libraries should not override policies recommended in libraries routines because libraries should not override policies
configured from the parant process. Also, users must noted that these interfaces configured from the parant process. Also, users must noted that these interfaces
are not portable to non-Linux, nor non-RISC-V environments, so it is discourage are not portable to non-Linux, nor non-RISC-V environments, so it is discourage

View File

@ -422,7 +422,7 @@ Configure the guest's AP resources
Configuring the AP resources for a KVM guest will be performed when the Configuring the AP resources for a KVM guest will be performed when the
VFIO_GROUP_NOTIFY_SET_KVM notifier callback is invoked. The notifier VFIO_GROUP_NOTIFY_SET_KVM notifier callback is invoked. The notifier
function is called when userspace connects to KVM. The guest's AP resources are function is called when userspace connects to KVM. The guest's AP resources are
configured via it's APCB by: configured via its APCB by:
* Setting the bits in the APM corresponding to the APIDs assigned to the * Setting the bits in the APM corresponding to the APIDs assigned to the
vfio_ap mediated device via its 'assign_adapter' interface. vfio_ap mediated device via its 'assign_adapter' interface.

View File

@ -186,7 +186,7 @@ average usage, albeit over a longer time window than a single period. This
also limits the burst ability to no more than 1ms per cpu. This provides also limits the burst ability to no more than 1ms per cpu. This provides
better more predictable user experience for highly threaded applications with better more predictable user experience for highly threaded applications with
small quota limits on high core count machines. It also eliminates the small quota limits on high core count machines. It also eliminates the
propensity to throttle these applications while simultanously using less than propensity to throttle these applications while simultaneously using less than
quota amounts of cpu. Another way to say this, is that by allowing the unused quota amounts of cpu. Another way to say this, is that by allowing the unused
portion of a slice to remain valid across periods we have decreased the portion of a slice to remain valid across periods we have decreased the
possibility of wastefully expiring quota on cpu-local silos that don't need a possibility of wastefully expiring quota on cpu-local silos that don't need a

View File

@ -82,7 +82,7 @@ through the arch_scale_cpu_capacity() callback.
The rest of platform knowledge used by EAS is directly read from the Energy The rest of platform knowledge used by EAS is directly read from the Energy
Model (EM) framework. The EM of a platform is composed of a power cost table Model (EM) framework. The EM of a platform is composed of a power cost table
per 'performance domain' in the system (see Documentation/power/energy-model.rst per 'performance domain' in the system (see Documentation/power/energy-model.rst
for futher details about performance domains). for further details about performance domains).
The scheduler manages references to the EM objects in the topology code when the The scheduler manages references to the EM objects in the topology code when the
scheduling domains are built, or re-built. For each root domain (rd), the scheduling domains are built, or re-built. For each root domain (rd), the
@ -281,7 +281,7 @@ mechanism called 'over-utilization'.
From a general standpoint, the use-cases where EAS can help the most are those From a general standpoint, the use-cases where EAS can help the most are those
involving a light/medium CPU utilization. Whenever long CPU-bound tasks are involving a light/medium CPU utilization. Whenever long CPU-bound tasks are
being run, they will require all of the available CPU capacity, and there isn't being run, they will require all of the available CPU capacity, and there isn't
much that can be done by the scheduler to save energy without severly harming much that can be done by the scheduler to save energy without severely harming
throughput. In order to avoid hurting performance with EAS, CPUs are flagged as throughput. In order to avoid hurting performance with EAS, CPUs are flagged as
'over-utilized' as soon as they are used at more than 80% of their compute 'over-utilized' as soon as they are used at more than 80% of their compute
capacity. As long as no CPUs are over-utilized in a root domain, load balancing capacity. As long as no CPUs are over-utilized in a root domain, load balancing

View File

@ -427,7 +427,7 @@ Changes from 20041207 to 20041213
* Changed version number to 8.0.17 * Changed version number to 8.0.17
* Fix sparse warnings by adding __iomem markers to lpfc_compat.h. * Fix sparse warnings by adding __iomem markers to lpfc_compat.h.
* Fix some sparse warnings -- 0 used as NULL pointer. * Fix some sparse warnings -- 0 used as NULL pointer.
* Make sure there's a space between every if and it's (. * Make sure there's a space between every if and its (.
* Fix some overly long lines and make sure hard tabs are used for * Fix some overly long lines and make sure hard tabs are used for
indentation. indentation.
* Remove all trailing whitespace. * Remove all trailing whitespace.

View File

@ -82,7 +82,7 @@ The signing and key management utilities evm-utils provide functionality
to generate signatures, to load keys into the kernel keyring. to generate signatures, to load keys into the kernel keyring.
Keys can be in PEM or converted to the kernel format. Keys can be in PEM or converted to the kernel format.
When the key is added to the kernel keyring, the keyid defines the name When the key is added to the kernel keyring, the keyid defines the name
of the key: 5D2B05FC633EE3E8 in the example bellow. of the key: 5D2B05FC633EE3E8 in the example below.
Here is example output of the keyctl utility:: Here is example output of the keyctl utility::

View File

@ -869,7 +869,7 @@ The keyctl syscall functions are:
- ``char *hashname`` specifies the NUL terminated string identifying - ``char *hashname`` specifies the NUL terminated string identifying
the hash used from the kernel crypto API and applied for the KDF the hash used from the kernel crypto API and applied for the KDF
operation. The KDF implemenation complies with SP800-56A as well operation. The KDF implementation complies with SP800-56A as well
as with SP800-108 (the counter KDF). as with SP800-108 (the counter KDF).
- ``char *otherinfo`` specifies the OtherInfo data as documented in - ``char *otherinfo`` specifies the OtherInfo data as documented in

View File

@ -34,7 +34,7 @@ be use it for its own purposes.
During the VM's launch, the virtual machine manager may inject a secret to that During the VM's launch, the virtual machine manager may inject a secret to that
area. In AMD SEV and SEV-ES this is performed using the area. In AMD SEV and SEV-ES this is performed using the
``KVM_SEV_LAUNCH_SECRET`` command (see [sev]_). The strucutre of the injected ``KVM_SEV_LAUNCH_SECRET`` command (see [sev]_). The structure of the injected
Guest Owner secret data should be a GUIDed table of secret values; the binary Guest Owner secret data should be a GUIDed table of secret values; the binary
format is described in ``drivers/virt/coco/efi_secret/efi_secret.c`` under format is described in ``drivers/virt/coco/efi_secret/efi_secret.c`` under
"Structure of the EFI secret area". "Structure of the EFI secret area".

Some files were not shown because too many files have changed in this diff Show More