Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'docs-4.20' of git://git.lwn.net/linux

Pull documentation updates from Jonathan Corbet:
"This is a fairly typical cycle for documentation. There's some welcome
readability improvements for the formatted output, some LICENSES
updates including the addition of the ISC license, the removal of the
unloved and unmaintained 00-INDEX files, the deprecated APIs document
from Kees, more MM docs from Mike Rapoport, and the usual pile of typo
fixes and corrections"

* tag 'docs-4.20' of git://git.lwn.net/linux: (41 commits)
docs: Fix typos in histogram.rst
docs: Introduce deprecated APIs list
kernel-doc: fix declaration type determination
doc: fix a typo in adding-syscalls.rst
docs/admin-guide: memory-hotplug: remove table of contents
doc: printk-formats: Remove bogus kobject references for device nodes
Documentation: preempt-locking: Use better example
dm flakey: Document "error_writes" feature
docs/completion.txt: Fix a couple of punctuation nits
LICENSES: Add ISC license text
LICENSES: Add note to CDDL-1.0 license that it should not be used
docs/core-api: memory-hotplug: add some details about locking internals
docs/core-api: rename memory-hotplug-notifier to memory-hotplug
docs: improve readability for people with poorer eyesight
yama: clarify ptrace_scope=2 in Yama documentation
docs/vm: split memory hotplug notifier description to Documentation/core-api
docs: move memory hotplug description into admin-guide/mm
doc: Fix acronym "FEKEK" in ecryptfs
docs: fix some broken documentation references
iommu: Fix passthrough option documentation
...

+679 -2100
-428
Documentation/00-INDEX
··· 1 - 2 - This is a brief list of all the files in ./linux/Documentation and what 3 - they contain. If you add a documentation file, please list it here in 4 - alphabetical order as well, or risk being hunted down like a rabid dog. 5 - Please keep the descriptions small enough to fit on one line. 6 - Thanks -- Paul G. 7 - 8 - Following translations are available on the WWW: 9 - 10 - - Japanese, maintained by the JF Project (jf@listserv.linux.or.jp), at 11 - http://linuxjf.sourceforge.jp/ 12 - 13 - 00-INDEX 14 - - this file. 15 - ABI/ 16 - - info on kernel <-> userspace ABI and relative interface stability. 17 - CodingStyle 18 - - nothing here, just a pointer to process/coding-style.rst. 19 - DMA-API.txt 20 - - DMA API, pci_ API & extensions for non-consistent memory machines. 21 - DMA-API-HOWTO.txt 22 - - Dynamic DMA mapping Guide 23 - DMA-ISA-LPC.txt 24 - - How to do DMA with ISA (and LPC) devices. 25 - DMA-attributes.txt 26 - - listing of the various possible attributes a DMA region can have 27 - EDID/ 28 - - directory with info on customizing EDID for broken gfx/displays. 29 - IPMI.txt 30 - - info on Linux Intelligent Platform Management Interface (IPMI) Driver. 31 - IRQ-affinity.txt 32 - - how to select which CPU(s) handle which interrupt events on SMP. 33 - IRQ-domain.txt 34 - - info on interrupt numbering and setting up IRQ domains. 35 - IRQ.txt 36 - - description of what an IRQ is. 37 - Intel-IOMMU.txt 38 - - basic info on the Intel IOMMU virtualization support. 39 - Makefile 40 - - It's not of interest for those who aren't touching the build system. 41 - PCI/ 42 - - info related to PCI drivers. 43 - RCU/ 44 - - directory with info on RCU (read-copy update). 45 - SAK.txt 46 - - info on Secure Attention Keys. 47 - SM501.txt 48 - - Silicon Motion SM501 multimedia companion chip 49 - SubmittingPatches 50 - - nothing here, just a pointer to process/coding-style.rst. 51 - accounting/ 52 - - documentation on accounting and taskstats. 53 - acpi/ 54 - - info on ACPI-specific hooks in the kernel. 55 - admin-guide/ 56 - - info related to Linux users and system admins. 57 - aoe/ 58 - - description of AoE (ATA over Ethernet) along with config examples. 59 - arm/ 60 - - directory with info about Linux on the ARM architecture. 61 - arm64/ 62 - - directory with info about Linux on the 64 bit ARM architecture. 63 - auxdisplay/ 64 - - misc. LCD driver documentation (cfag12864b, ks0108). 65 - backlight/ 66 - - directory with info on controlling backlights in flat panel displays 67 - block/ 68 - - info on the Block I/O (BIO) layer. 69 - blockdev/ 70 - - info on block devices & drivers 71 - bt8xxgpio.txt 72 - - info on how to modify a bt8xx video card for GPIO usage. 73 - btmrvl.txt 74 - - info on Marvell Bluetooth driver usage. 75 - bus-devices/ 76 - - directory with info on TI GPMC (General Purpose Memory Controller) 77 - bus-virt-phys-mapping.txt 78 - - how to access I/O mapped memory from within device drivers. 79 - cdrom/ 80 - - directory with information on the CD-ROM drivers that Linux has. 81 - cgroup-v1/ 82 - - cgroups v1 features, including cpusets and memory controller. 83 - cma/ 84 - - Continuous Memory Area (CMA) debugfs interface. 85 - conf.py 86 - - It's not of interest for those who aren't touching the build system. 87 - connector/ 88 - - docs on the netlink based userspace<->kernel space communication mod. 89 - console/ 90 - - documentation on Linux console drivers. 91 - core-api/ 92 - - documentation on kernel core components. 93 - cpu-freq/ 94 - - info on CPU frequency and voltage scaling. 95 - cpu-hotplug.txt 96 - - document describing CPU hotplug support in the Linux kernel. 97 - cpu-load.txt 98 - - document describing how CPU load statistics are collected. 99 - cpuidle/ 100 - - info on CPU_IDLE, CPU idle state management subsystem. 101 - cputopology.txt 102 - - documentation on how CPU topology info is exported via sysfs. 103 - crc32.txt 104 - - brief tutorial on CRC computation 105 - crypto/ 106 - - directory with info on the Crypto API. 107 - dcdbas.txt 108 - - information on the Dell Systems Management Base Driver. 109 - debugging-modules.txt 110 - - some notes on debugging modules after Linux 2.6.3. 111 - debugging-via-ohci1394.txt 112 - - how to use firewire like a hardware debugger memory reader. 113 - dell_rbu.txt 114 - - document demonstrating the use of the Dell Remote BIOS Update driver. 115 - dev-tools/ 116 - - directory with info on development tools for the kernel. 117 - device-mapper/ 118 - - directory with info on Device Mapper. 119 - dmaengine/ 120 - - the DMA engine and controller API guides. 121 - devicetree/ 122 - - directory with info on device tree files used by OF/PowerPC/ARM 123 - digsig.txt 124 - -info on the Digital Signature Verification API 125 - dma-buf-sharing.txt 126 - - the DMA Buffer Sharing API Guide 127 - docutils.conf 128 - - nothing here. Just a configuration file for docutils. 129 - dontdiff 130 - - file containing a list of files that should never be diff'ed. 131 - driver-api/ 132 - - the Linux driver implementer's API guide. 133 - driver-model/ 134 - - directory with info about Linux driver model. 135 - early-userspace/ 136 - - info about initramfs, klibc, and userspace early during boot. 137 - efi-stub.txt 138 - - How to use the EFI boot stub to bypass GRUB or elilo on EFI systems. 139 - eisa.txt 140 - - info on EISA bus support. 141 - extcon/ 142 - - directory with porting guide for Android kernel switch driver. 143 - isa.txt 144 - - info on EISA bus support. 145 - fault-injection/ 146 - - dir with docs about the fault injection capabilities infrastructure. 147 - fb/ 148 - - directory with info on the frame buffer graphics abstraction layer. 149 - features/ 150 - - status of feature implementation on different architectures. 151 - filesystems/ 152 - - info on the vfs and the various filesystems that Linux supports. 153 - firmware_class/ 154 - - request_firmware() hotplug interface info. 155 - flexible-arrays.txt 156 - - how to make use of flexible sized arrays in linux 157 - fmc/ 158 - - information about the FMC bus abstraction 159 - fpga/ 160 - - FPGA Manager Core. 161 - futex-requeue-pi.txt 162 - - info on requeueing of tasks from a non-PI futex to a PI futex 163 - gcc-plugins.txt 164 - - GCC plugin infrastructure. 165 - gpio/ 166 - - gpio related documentation 167 - gpu/ 168 - - directory with information on GPU driver developer's guide. 169 - hid/ 170 - - directory with information on human interface devices 171 - highuid.txt 172 - - notes on the change from 16 bit to 32 bit user/group IDs. 173 - hwspinlock.txt 174 - - hardware spinlock provides hardware assistance for synchronization 175 - timers/ 176 - - info on the timer related topics 177 - hw_random.txt 178 - - info on Linux support for random number generator in i8xx chipsets. 179 - hwmon/ 180 - - directory with docs on various hardware monitoring drivers. 181 - i2c/ 182 - - directory with info about the I2C bus/protocol (2 wire, kHz speed). 183 - x86/i386/ 184 - - directory with info about Linux on Intel 32 bit architecture. 185 - ia64/ 186 - - directory with info about Linux on Intel 64 bit architecture. 187 - ide/ 188 - - Information regarding the Enhanced IDE drive. 189 - iio/ 190 - - info on industrial IIO configfs support. 191 - index.rst 192 - - main index for the documentation at ReST format. 193 - infiniband/ 194 - - directory with documents concerning Linux InfiniBand support. 195 - input/ 196 - - info on Linux input device support. 197 - intel_txt.txt 198 - - info on intel Trusted Execution Technology (intel TXT). 199 - io-mapping.txt 200 - - description of io_mapping functions in linux/io-mapping.h 201 - io_ordering.txt 202 - - info on ordering I/O writes to memory-mapped addresses. 203 - ioctl/ 204 - - directory with documents describing various IOCTL calls. 205 - iostats.txt 206 - - info on I/O statistics Linux kernel provides. 207 - irqflags-tracing.txt 208 - - how to use the irq-flags tracing feature. 209 - isapnp.txt 210 - - info on Linux ISA Plug & Play support. 211 - isdn/ 212 - - directory with info on the Linux ISDN support, and supported cards. 213 - kbuild/ 214 - - directory with info about the kernel build process. 215 - kdump/ 216 - - directory with mini HowTo on getting the crash dump code to work. 217 - doc-guide/ 218 - - how to write and format reStructuredText kernel documentation 219 - kernel-per-CPU-kthreads.txt 220 - - List of all per-CPU kthreads and how they introduce jitter. 221 - kobject.txt 222 - - info of the kobject infrastructure of the Linux kernel. 223 - kprobes.txt 224 - - documents the kernel probes debugging feature. 225 - kref.txt 226 - - docs on adding reference counters (krefs) to kernel objects. 227 - laptops/ 228 - - directory with laptop related info and laptop driver documentation. 229 - ldm.txt 230 - - a brief description of LDM (Windows Dynamic Disks). 231 - leds/ 232 - - directory with info about LED handling under Linux. 233 - livepatch/ 234 - - info on kernel live patching. 235 - locking/ 236 - - directory with info about kernel locking primitives 237 - lockup-watchdogs.txt 238 - - info on soft and hard lockup detectors (aka nmi_watchdog). 239 - logo.gif 240 - - full colour GIF image of Linux logo (penguin - Tux). 241 - logo.txt 242 - - info on creator of above logo & site to get additional images from. 243 - lsm.txt 244 - - Linux Security Modules: General Security Hooks for Linux 245 - lzo.txt 246 - - kernel LZO decompressor input formats 247 - m68k/ 248 - - directory with info about Linux on Motorola 68k architecture. 249 - mailbox.txt 250 - - How to write drivers for the common mailbox framework (IPC). 251 - md/ 252 - - directory with info about Linux Software RAID 253 - media/ 254 - - info on media drivers: uAPI, kAPI and driver documentation. 255 - memory-barriers.txt 256 - - info on Linux kernel memory barriers. 257 - memory-devices/ 258 - - directory with info on parts like the Texas Instruments EMIF driver 259 - memory-hotplug.txt 260 - - Hotpluggable memory support, how to use and current status. 261 - men-chameleon-bus.txt 262 - - info on MEN chameleon bus. 263 - mic/ 264 - - Intel Many Integrated Core (MIC) architecture device driver. 265 - mips/ 266 - - directory with info about Linux on MIPS architecture. 267 - misc-devices/ 268 - - directory with info about devices using the misc dev subsystem 269 - mmc/ 270 - - directory with info about the MMC subsystem 271 - mtd/ 272 - - directory with info about memory technology devices (flash) 273 - namespaces/ 274 - - directory with various information about namespaces 275 - netlabel/ 276 - - directory with information on the NetLabel subsystem. 277 - networking/ 278 - - directory with info on various aspects of networking with Linux. 279 - nfc/ 280 - - directory relating info about Near Field Communications support. 281 - nios2/ 282 - - Linux on the Nios II architecture. 283 - nommu-mmap.txt 284 - - documentation about no-mmu memory mapping support. 285 - numastat.txt 286 - - info on how to read Numa policy hit/miss statistics in sysfs. 287 - ntb.txt 288 - - info on Non-Transparent Bridge (NTB) drivers. 289 - nvdimm/ 290 - - info on non-volatile devices. 291 - nvmem/ 292 - - info on non volatile memory framework. 293 - output/ 294 - - default directory where html/LaTeX/pdf files will be written. 295 - padata.txt 296 - - An introduction to the "padata" parallel execution API 297 - parisc/ 298 - - directory with info on using Linux on PA-RISC architecture. 299 - parport-lowlevel.txt 300 - - description and usage of the low level parallel port functions. 301 - pcmcia/ 302 - - info on the Linux PCMCIA driver. 303 - percpu-rw-semaphore.txt 304 - - RCU based read-write semaphore optimized for locking for reading 305 - perf/ 306 - - info about the APM X-Gene SoC Performance Monitoring Unit (PMU). 307 - phy/ 308 - - ino on Samsung USB 2.0 PHY adaptation layer. 309 - phy.txt 310 - - Description of the generic PHY framework. 311 - pi-futex.txt 312 - - documentation on lightweight priority inheritance futexes. 313 - pinctrl.txt 314 - - info on pinctrl subsystem and the PINMUX/PINCONF and drivers 315 - platform/ 316 - - List of supported hardware by compal and Dell laptop. 317 - pnp.txt 318 - - Linux Plug and Play documentation. 319 - power/ 320 - - directory with info on Linux PCI power management. 321 - powerpc/ 322 - - directory with info on using Linux with the PowerPC. 323 - prctl/ 324 - - directory with info on the priveledge control subsystem 325 - preempt-locking.txt 326 - - info on locking under a preemptive kernel. 327 - process/ 328 - - how to work with the mainline kernel development process. 329 - pps/ 330 - - directory with information on the pulse-per-second support 331 - pti/ 332 - - directory with info on Intel MID PTI. 333 - ptp/ 334 - - directory with info on support for IEEE 1588 PTP clocks in Linux. 335 - pwm.txt 336 - - info on the pulse width modulation driver subsystem 337 - rapidio/ 338 - - directory with info on RapidIO packet-based fabric interconnect 339 - rbtree.txt 340 - - info on what red-black trees are and what they are for. 341 - remoteproc.txt 342 - - info on how to handle remote processor (e.g. AMP) offloads/usage. 343 - rfkill.txt 344 - - info on the radio frequency kill switch subsystem/support. 345 - robust-futex-ABI.txt 346 - - documentation of the robust futex ABI. 347 - robust-futexes.txt 348 - - a description of what robust futexes are. 349 - rpmsg.txt 350 - - info on the Remote Processor Messaging (rpmsg) Framework 351 - rtc.txt 352 - - notes on how to use the Real Time Clock (aka CMOS clock) driver. 353 - s390/ 354 - - directory with info on using Linux on the IBM S390. 355 - scheduler/ 356 - - directory with info on the scheduler. 357 - scsi/ 358 - - directory with info on Linux scsi support. 359 - security/ 360 - - directory that contains security-related info 361 - serial/ 362 - - directory with info on the low level serial API. 363 - sgi-ioc4.txt 364 - - description of the SGI IOC4 PCI (multi function) device. 365 - sh/ 366 - - directory with info on porting Linux to a new architecture. 367 - smsc_ece1099.txt 368 - -info on the smsc Keyboard Scan Expansion/GPIO Expansion device. 369 - sound/ 370 - - directory with info on sound card support. 371 - spi/ 372 - - overview of Linux kernel Serial Peripheral Interface (SPI) support. 373 - sphinx/ 374 - - no documentation here, just files required by Sphinx toolchain. 375 - sphinx-static/ 376 - - no documentation here, just files required by Sphinx toolchain. 377 - static-keys.txt 378 - - info on how static keys allow debug code in hotpaths via patching 379 - svga.txt 380 - - short guide on selecting video modes at boot via VGA BIOS. 381 - sync_file.txt 382 - - Sync file API guide. 383 - sysctl/ 384 - - directory with info on the /proc/sys/* files. 385 - target/ 386 - - directory with info on generating TCM v4 fabric .ko modules 387 - tee.txt 388 - - info on the TEE subsystem and drivers 389 - this_cpu_ops.txt 390 - - List rationale behind and the way to use this_cpu operations. 391 - thermal/ 392 - - directory with information on managing thermal issues (CPU/temp) 393 - trace/ 394 - - directory with info on tracing technologies within linux 395 - translations/ 396 - - translations of this document from English to another language 397 - unaligned-memory-access.txt 398 - - info on how to avoid arch breaking unaligned memory access in code. 399 - unshare.txt 400 - - description of the Linux unshare system call. 401 - usb/ 402 - - directory with info regarding the Universal Serial Bus. 403 - vfio.txt 404 - - info on Virtual Function I/O used in guest/hypervisor instances. 405 - video-output.txt 406 - - sysfs class driver interface to enable/disable a video output device. 407 - virtual/ 408 - - directory with information on the various linux virtualizations. 409 - vm/ 410 - - directory with info on the Linux vm code. 411 - w1/ 412 - - directory with documents regarding the 1-wire (w1) subsystem. 413 - watchdog/ 414 - - how to auto-reboot Linux if it has "fallen and can't get up". ;-) 415 - wimax/ 416 - - directory with info about Intel Wireless Wimax Connections 417 - core-api/workqueue.rst 418 - - information on the Concurrency Managed Workqueue implementation 419 - x86/x86_64/ 420 - - directory with info on Linux support for AMD x86-64 (Hammer) machines. 421 - xillybus.txt 422 - - Overview and basic ui of xillybus driver 423 - xtensa/ 424 - - directory with documents relating to arch/xtensa port/implementation 425 - xz.txt 426 - - how to make use of the XZ data compression within linux kernel 427 - zorro.txt 428 - - info on writing drivers for Zorro bus devices found on Amigas.
-26
Documentation/PCI/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - acpi-info.txt 4 - - info on how PCI host bridges are represented in ACPI 5 - MSI-HOWTO.txt 6 - - the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ. 7 - PCIEBUS-HOWTO.txt 8 - - a guide describing the PCI Express Port Bus driver 9 - pci-error-recovery.txt 10 - - info on PCI error recovery 11 - pci-iov-howto.txt 12 - - the PCI Express I/O Virtualization HOWTO 13 - pci.txt 14 - - info on the PCI subsystem for device driver authors 15 - pcieaer-howto.txt 16 - - the PCI Express Advanced Error Reporting Driver Guide HOWTO 17 - endpoint/pci-endpoint.txt 18 - - guide to add endpoint controller driver and endpoint function driver. 19 - endpoint/pci-endpoint-cfs.txt 20 - - guide to use configfs to configure the PCI endpoint function. 21 - endpoint/pci-test-function.txt 22 - - specification of *PCI test* function device. 23 - endpoint/pci-test-howto.txt 24 - - userguide for PCI endpoint test function. 25 - endpoint/function/binding/ 26 - - binding documentation for PCI endpoint function
-34
Documentation/RCU/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - arrayRCU.txt 4 - - Using RCU to Protect Read-Mostly Arrays 5 - checklist.txt 6 - - Review Checklist for RCU Patches 7 - listRCU.txt 8 - - Using RCU to Protect Read-Mostly Linked Lists 9 - lockdep.txt 10 - - RCU and lockdep checking 11 - lockdep-splat.txt 12 - - RCU Lockdep splats explained. 13 - NMI-RCU.txt 14 - - Using RCU to Protect Dynamic NMI Handlers 15 - rcu_dereference.txt 16 - - Proper care and feeding of return values from rcu_dereference() 17 - rcubarrier.txt 18 - - RCU and Unloadable Modules 19 - rculist_nulls.txt 20 - - RCU list primitives for use with SLAB_TYPESAFE_BY_RCU 21 - rcuref.txt 22 - - Reference-count design for elements of lists/arrays protected by RCU 23 - rcu.txt 24 - - RCU Concepts 25 - RTFP.txt 26 - - List of RCU papers (bibliography) going back to 1980. 27 - stallwarn.txt 28 - - RCU CPU stall warnings (module parameter rcu_cpu_stall_suppress) 29 - torture.txt 30 - - RCU Torture Test Operation (CONFIG_RCU_TORTURE_TEST) 31 - UP.txt 32 - - RCU on Uniprocessor Systems 33 - whatisRCU.txt 34 - - What is RCU?
-4
Documentation/RCU/rcu.txt
··· 87 87 88 88 See the RTFP.txt file in this directory. 89 89 Or point your browser at http://www.rdrop.com/users/paulmck/RCU/. 90 - 91 - o What are all these files in this directory? 92 - 93 - See 00-INDEX for the list.
+2 -2
Documentation/admin-guide/LSM/Yama.rst
··· 64 64 Using ``PTRACE_TRACEME`` is unchanged. 65 65 66 66 2 - admin-only attach: 67 - only processes with ``CAP_SYS_PTRACE`` may use ptrace 68 - with ``PTRACE_ATTACH``, or through children calling ``PTRACE_TRACEME``. 67 + only processes with ``CAP_SYS_PTRACE`` may use ptrace, either with 68 + ``PTRACE_ATTACH`` or through children calling ``PTRACE_TRACEME``. 69 69 70 70 3 - no attach: 71 71 no processes may use ptrace with ``PTRACE_ATTACH`` nor via
+1 -2
Documentation/admin-guide/README.rst
··· 51 51 52 52 - There are various README files in the Documentation/ subdirectory: 53 53 these typically contain kernel-specific installation notes for some 54 - drivers for example. See Documentation/00-INDEX for a list of what 55 - is contained in each file. Please read the 54 + drivers for example. Please read the 56 55 :ref:`Documentation/process/changes.rst <changes>` file, as it 57 56 contains information about the problems, which may result by upgrading 58 57 your kernel.
+1 -1
Documentation/admin-guide/kernel-parameters.txt
··· 1764 1764 Format: { "0" | "1" } 1765 1765 0 - Use IOMMU translation for DMA. 1766 1766 1 - Bypass the IOMMU for DMA. 1767 - unset - Use IOMMU translation for DMA. 1767 + unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH. 1768 1768 1769 1769 io7= [HW] IO7 for Marvel based alpha systems 1770 1770 See comment before marvel_specify_io7 in
+1 -1
Documentation/admin-guide/l1tf.rst
··· 553 553 the bare metal hypervisor, the nested hypervisor and the nested virtual 554 554 machine. VMENTER operations from the nested hypervisor into the nested 555 555 guest will always be processed by the bare metal hypervisor. If KVM is the 556 - bare metal hypervisor it wiil: 556 + bare metal hypervisor it will: 557 557 558 558 - Flush the L1D cache on every switch from the nested hypervisor to the 559 559 nested virtual machine, so that the nested hypervisor's secrets are not
+1
Documentation/admin-guide/mm/index.rst
··· 29 29 hugetlbpage 30 30 idle_page_tracking 31 31 ksm 32 + memory-hotplug 32 33 numa_memory_policy 33 34 pagemap 34 35 soft-dirty
-50
Documentation/arm/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - Booting 4 - - requirements for booting 5 - CCN.txt 6 - - Cache Coherent Network ring-bus and perf PMU driver. 7 - Interrupts 8 - - ARM Interrupt subsystem documentation 9 - IXP4xx 10 - - Intel IXP4xx Network processor. 11 - Netwinder 12 - - Netwinder specific documentation 13 - Porting 14 - - Symbol definitions for porting Linux to a new ARM machine. 15 - Setup 16 - - Kernel initialization parameters on ARM Linux 17 - README 18 - - General ARM documentation 19 - SA1100/ 20 - - SA1100 documentation 21 - Samsung-S3C24XX/ 22 - - S3C24XX ARM Linux Overview 23 - SPEAr/ 24 - - ST SPEAr platform Linux Overview 25 - VFP/ 26 - - Release notes for Linux Kernel Vector Floating Point support code 27 - cluster-pm-race-avoidance.txt 28 - - Algorithm for CPU and Cluster setup/teardown 29 - empeg/ 30 - - Ltd's Empeg MP3 Car Audio Player 31 - firmware.txt 32 - - Secure firmware registration and calling. 33 - kernel_mode_neon.txt 34 - - How to use NEON instructions in kernel mode 35 - kernel_user_helpers.txt 36 - - Helper functions in kernel space made available for userspace. 37 - mem_alignment 38 - - alignment abort handler documentation 39 - memory.txt 40 - - description of the virtual memory layout 41 - nwfpe/ 42 - - NWFPE floating point emulator documentation 43 - swp_emulation 44 - - SWP/SWPB emulation handler/logging description 45 - tcm.txt 46 - - ARM Tightly Coupled Memory 47 - uefi.txt 48 - - [U]EFI configuration and runtime services documentation 49 - vlocks.txt 50 - - Voting locks, low-level mechanism relying on memory system atomic writes.
-34
Documentation/block/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - bfq-iosched.txt 4 - - BFQ IO scheduler and its tunables 5 - biodoc.txt 6 - - Notes on the Generic Block Layer Rewrite in Linux 2.5 7 - biovecs.txt 8 - - Immutable biovecs and biovec iterators 9 - capability.txt 10 - - Generic Block Device Capability (/sys/block/<device>/capability) 11 - cfq-iosched.txt 12 - - CFQ IO scheduler tunables 13 - cmdline-partition.txt 14 - - how to specify block device partitions on kernel command line 15 - data-integrity.txt 16 - - Block data integrity 17 - deadline-iosched.txt 18 - - Deadline IO scheduler tunables 19 - ioprio.txt 20 - - Block io priorities (in CFQ scheduler) 21 - pr.txt 22 - - Block layer support for Persistent Reservations 23 - null_blk.txt 24 - - Null block for block-layer benchmarking. 25 - queue-sysfs.txt 26 - - Queue's sysfs entries 27 - request.txt 28 - - The members of struct request (in include/linux/blkdev.h) 29 - stat.txt 30 - - Block layer statistics in /sys/block/<device>/stat 31 - switching-sched.txt 32 - - Switching I/O schedulers at runtime 33 - writeback_cache_control.txt 34 - - Control of volatile write back caches
-18
Documentation/blockdev/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - README.DAC960 4 - - info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux. 5 - cciss.txt 6 - - info, major/minor #'s for Compaq's SMART Array Controllers. 7 - cpqarray.txt 8 - - info on using Compaq's SMART2 Intelligent Disk Array Controllers. 9 - floppy.txt 10 - - notes and driver options for the floppy disk driver. 11 - mflash.txt 12 - - info on mGine m(g)flash driver for linux. 13 - nbd.txt 14 - - info on a TCP implementation of a network block device. 15 - paride.txt 16 - - information about the parallel port IDE subsystem. 17 - ramdisk.txt 18 - - short guide on how to set up and use the RAM disk.
-11
Documentation/cdrom/00-INDEX
··· 1 - 00-INDEX 2 - - this file (info on CD-ROMs and Linux) 3 - Makefile 4 - - only used to generate TeX output from the documentation. 5 - cdrom-standard.tex 6 - - LaTeX document on standardizing the CD-ROM programming interface. 7 - ide-cd 8 - - info on setting up and using ATAPI (aka IDE) CD-ROMs. 9 - packet-writing.txt 10 - - Info on the CDRW packet writing module 11 -
-26
Documentation/cgroup-v1/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - blkio-controller.txt 4 - - Description for Block IO Controller, implementation and usage details. 5 - cgroups.txt 6 - - Control Groups definition, implementation details, examples and API. 7 - cpuacct.txt 8 - - CPU Accounting Controller; account CPU usage for groups of tasks. 9 - cpusets.txt 10 - - documents the cpusets feature; assign CPUs and Mem to a set of tasks. 11 - admin-guide/devices.rst 12 - - Device Whitelist Controller; description, interface and security. 13 - freezer-subsystem.txt 14 - - checkpointing; rationale to not use signals, interface. 15 - hugetlb.txt 16 - - HugeTLB Controller implementation and usage details. 17 - memcg_test.txt 18 - - Memory Resource Controller; implementation details. 19 - memory.txt 20 - - Memory Resource Controller; design, accounting, interface, testing. 21 - net_cls.txt 22 - - Network classifier cgroups details and usages. 23 - net_prio.txt 24 - - Network priority cgroups details and usages. 25 - pids.txt 26 - - Process number cgroups details and usages.
+3 -3
Documentation/conf.py
··· 259 259 'papersize': 'a4paper', 260 260 261 261 # The font size ('10pt', '11pt' or '12pt'). 262 - 'pointsize': '8pt', 262 + 'pointsize': '11pt', 263 263 264 264 # Latex figure (float) alignment 265 265 #'figure_align': 'htbp', ··· 272 272 'preamble': ''' 273 273 % Use some font with UTF-8 support with XeLaTeX 274 274 \\usepackage{fontspec} 275 - \\setsansfont{DejaVu Serif} 276 - \\setromanfont{DejaVu Sans} 275 + \\setsansfont{DejaVu Sans} 276 + \\setromanfont{DejaVu Serif} 277 277 \\setmonofont{DejaVu Sans Mono} 278 278 279 279 '''
+2 -2
Documentation/core-api/boot-time-mm.rst
··· 76 76 77 77 .. kernel-doc:: include/linux/bootmem.h 78 78 .. kernel-doc:: mm/bootmem.c 79 - :nodocs: 79 + :functions: 80 80 81 81 Memblock specific API 82 82 --------------------- ··· 89 89 90 90 .. kernel-doc:: include/linux/memblock.h 91 91 .. kernel-doc:: mm/memblock.c 92 - :nodocs: 92 + :functions:
+2
Documentation/core-api/gfp_mask-from-fs-io.rst
··· 1 + .. _gfp_mask_from_fs_io: 2 + 1 3 ================================= 2 4 GFP masks used from FS/IO context 3 5 =================================
+3
Documentation/core-api/index.rst
··· 27 27 errseq 28 28 printk-formats 29 29 circular-buffers 30 + memory-allocation 30 31 mm-api 31 32 gfp_mask-from-fs-io 32 33 timekeeping 33 34 boot-time-mm 35 + memory-hotplug 36 + 34 37 35 38 Interfaces for kernel debugging 36 39 ===============================
+122
Documentation/core-api/memory-allocation.rst
··· 1 + ======================= 2 + Memory Allocation Guide 3 + ======================= 4 + 5 + Linux provides a variety of APIs for memory allocation. You can 6 + allocate small chunks using `kmalloc` or `kmem_cache_alloc` families, 7 + large virtually contiguous areas using `vmalloc` and its derivatives, 8 + or you can directly request pages from the page allocator with 9 + `alloc_pages`. It is also possible to use more specialized allocators, 10 + for instance `cma_alloc` or `zs_malloc`. 11 + 12 + Most of the memory allocation APIs use GFP flags to express how that 13 + memory should be allocated. The GFP acronym stands for "get free 14 + pages", the underlying memory allocation function. 15 + 16 + Diversity of the allocation APIs combined with the numerous GFP flags 17 + makes the question "How should I allocate memory?" not that easy to 18 + answer, although very likely you should use 19 + 20 + :: 21 + 22 + kzalloc(<size>, GFP_KERNEL); 23 + 24 + Of course there are cases when other allocation APIs and different GFP 25 + flags must be used. 26 + 27 + Get Free Page flags 28 + =================== 29 + 30 + The GFP flags control the allocators behavior. They tell what memory 31 + zones can be used, how hard the allocator should try to find free 32 + memory, whether the memory can be accessed by the userspace etc. The 33 + :ref:`Documentation/core-api/mm-api.rst <mm-api-gfp-flags>` provides 34 + reference documentation for the GFP flags and their combinations and 35 + here we briefly outline their recommended usage: 36 + 37 + * Most of the time ``GFP_KERNEL`` is what you need. Memory for the 38 + kernel data structures, DMAable memory, inode cache, all these and 39 + many other allocations types can use ``GFP_KERNEL``. Note, that 40 + using ``GFP_KERNEL`` implies ``GFP_RECLAIM``, which means that 41 + direct reclaim may be triggered under memory pressure; the calling 42 + context must be allowed to sleep. 43 + * If the allocation is performed from an atomic context, e.g interrupt 44 + handler, use ``GFP_NOWAIT``. This flag prevents direct reclaim and 45 + IO or filesystem operations. Consequently, under memory pressure 46 + ``GFP_NOWAIT`` allocation is likely to fail. Allocations which 47 + have a reasonable fallback should be using ``GFP_NOWARN``. 48 + * If you think that accessing memory reserves is justified and the kernel 49 + will be stressed unless allocation succeeds, you may use ``GFP_ATOMIC``. 50 + * Untrusted allocations triggered from userspace should be a subject 51 + of kmem accounting and must have ``__GFP_ACCOUNT`` bit set. There 52 + is the handy ``GFP_KERNEL_ACCOUNT`` shortcut for ``GFP_KERNEL`` 53 + allocations that should be accounted. 54 + * Userspace allocations should use either of the ``GFP_USER``, 55 + ``GFP_HIGHUSER`` or ``GFP_HIGHUSER_MOVABLE`` flags. The longer 56 + the flag name the less restrictive it is. 57 + 58 + ``GFP_HIGHUSER_MOVABLE`` does not require that allocated memory 59 + will be directly accessible by the kernel and implies that the 60 + data is movable. 61 + 62 + ``GFP_HIGHUSER`` means that the allocated memory is not movable, 63 + but it is not required to be directly accessible by the kernel. An 64 + example may be a hardware allocation that maps data directly into 65 + userspace but has no addressing limitations. 66 + 67 + ``GFP_USER`` means that the allocated memory is not movable and it 68 + must be directly accessible by the kernel. 69 + 70 + You may notice that quite a few allocations in the existing code 71 + specify ``GFP_NOIO`` or ``GFP_NOFS``. Historically, they were used to 72 + prevent recursion deadlocks caused by direct memory reclaim calling 73 + back into the FS or IO paths and blocking on already held 74 + resources. Since 4.12 the preferred way to address this issue is to 75 + use new scope APIs described in 76 + :ref:`Documentation/core-api/gfp_mask-from-fs-io.rst <gfp_mask_from_fs_io>`. 77 + 78 + Other legacy GFP flags are ``GFP_DMA`` and ``GFP_DMA32``. They are 79 + used to ensure that the allocated memory is accessible by hardware 80 + with limited addressing capabilities. So unless you are writing a 81 + driver for a device with such restrictions, avoid using these flags. 82 + And even with hardware with restrictions it is preferable to use 83 + `dma_alloc*` APIs. 84 + 85 + Selecting memory allocator 86 + ========================== 87 + 88 + The most straightforward way to allocate memory is to use a function 89 + from the :c:func:`kmalloc` family. And, to be on the safe size it's 90 + best to use routines that set memory to zero, like 91 + :c:func:`kzalloc`. If you need to allocate memory for an array, there 92 + are :c:func:`kmalloc_array` and :c:func:`kcalloc` helpers. 93 + 94 + The maximal size of a chunk that can be allocated with `kmalloc` is 95 + limited. The actual limit depends on the hardware and the kernel 96 + configuration, but it is a good practice to use `kmalloc` for objects 97 + smaller than page size. 98 + 99 + For large allocations you can use :c:func:`vmalloc` and 100 + :c:func:`vzalloc`, or directly request pages from the page 101 + allocator. The memory allocated by `vmalloc` and related functions is 102 + not physically contiguous. 103 + 104 + If you are not sure whether the allocation size is too large for 105 + `kmalloc`, it is possible to use :c:func:`kvmalloc` and its 106 + derivatives. It will try to allocate memory with `kmalloc` and if the 107 + allocation fails it will be retried with `vmalloc`. There are 108 + restrictions on which GFP flags can be used with `kvmalloc`; please 109 + see :c:func:`kvmalloc_node` reference documentation. Note that 110 + `kvmalloc` may return memory that is not physically contiguous. 111 + 112 + If you need to allocate many identical objects you can use the slab 113 + cache allocator. The cache should be set up with 114 + :c:func:`kmem_cache_create` before it can be used. Afterwards 115 + :c:func:`kmem_cache_alloc` and its convenience wrappers can allocate 116 + memory from that cache. 117 + 118 + When the allocated memory is no longer needed it must be freed. You 119 + can use :c:func:`kvfree` for the memory allocated with `kmalloc`, 120 + `vmalloc` and `kvmalloc`. The slab caches should be freed with 121 + :c:func:`kmem_cache_free`. And don't forget to destroy the cache with 122 + :c:func:`kmem_cache_destroy`.
+125
Documentation/core-api/memory-hotplug.rst
··· 1 + .. _memory_hotplug: 2 + 3 + ============== 4 + Memory hotplug 5 + ============== 6 + 7 + Memory hotplug event notifier 8 + ============================= 9 + 10 + Hotplugging events are sent to a notification queue. 11 + 12 + There are six types of notification defined in ``include/linux/memory.h``: 13 + 14 + MEM_GOING_ONLINE 15 + Generated before new memory becomes available in order to be able to 16 + prepare subsystems to handle memory. The page allocator is still unable 17 + to allocate from the new memory. 18 + 19 + MEM_CANCEL_ONLINE 20 + Generated if MEM_GOING_ONLINE fails. 21 + 22 + MEM_ONLINE 23 + Generated when memory has successfully brought online. The callback may 24 + allocate pages from the new memory. 25 + 26 + MEM_GOING_OFFLINE 27 + Generated to begin the process of offlining memory. Allocations are no 28 + longer possible from the memory but some of the memory to be offlined 29 + is still in use. The callback can be used to free memory known to a 30 + subsystem from the indicated memory block. 31 + 32 + MEM_CANCEL_OFFLINE 33 + Generated if MEM_GOING_OFFLINE fails. Memory is available again from 34 + the memory block that we attempted to offline. 35 + 36 + MEM_OFFLINE 37 + Generated after offlining memory is complete. 38 + 39 + A callback routine can be registered by calling:: 40 + 41 + hotplug_memory_notifier(callback_func, priority) 42 + 43 + Callback functions with higher values of priority are called before callback 44 + functions with lower values. 45 + 46 + A callback function must have the following prototype:: 47 + 48 + int callback_func( 49 + struct notifier_block *self, unsigned long action, void *arg); 50 + 51 + The first argument of the callback function (self) is a pointer to the block 52 + of the notifier chain that points to the callback function itself. 53 + The second argument (action) is one of the event types described above. 54 + The third argument (arg) passes a pointer of struct memory_notify:: 55 + 56 + struct memory_notify { 57 + unsigned long start_pfn; 58 + unsigned long nr_pages; 59 + int status_change_nid_normal; 60 + int status_change_nid_high; 61 + int status_change_nid; 62 + } 63 + 64 + - start_pfn is start_pfn of online/offline memory. 65 + - nr_pages is # of pages of online/offline memory. 66 + - status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask 67 + is (will be) set/clear, if this is -1, then nodemask status is not changed. 68 + - status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask 69 + is (will be) set/clear, if this is -1, then nodemask status is not changed. 70 + - status_change_nid is set node id when N_MEMORY of nodemask is (will be) 71 + set/clear. It means a new(memoryless) node gets new memory by online and a 72 + node loses all memory. If this is -1, then nodemask status is not changed. 73 + 74 + If status_changed_nid* >= 0, callback should create/discard structures for the 75 + node if necessary. 76 + 77 + The callback routine shall return one of the values 78 + NOTIFY_DONE, NOTIFY_OK, NOTIFY_BAD, NOTIFY_STOP 79 + defined in ``include/linux/notifier.h`` 80 + 81 + NOTIFY_DONE and NOTIFY_OK have no effect on the further processing. 82 + 83 + NOTIFY_BAD is used as response to the MEM_GOING_ONLINE, MEM_GOING_OFFLINE, 84 + MEM_ONLINE, or MEM_OFFLINE action to cancel hotplugging. It stops 85 + further processing of the notification queue. 86 + 87 + NOTIFY_STOP stops further processing of the notification queue. 88 + 89 + Locking Internals 90 + ================= 91 + 92 + When adding/removing memory that uses memory block devices (i.e. ordinary RAM), 93 + the device_hotplug_lock should be held to: 94 + 95 + - synchronize against online/offline requests (e.g. via sysfs). This way, memory 96 + block devices can only be accessed (.online/.state attributes) by user 97 + space once memory has been fully added. And when removing memory, we 98 + know nobody is in critical sections. 99 + - synchronize against CPU hotplug and similar (e.g. relevant for ACPI and PPC) 100 + 101 + Especially, there is a possible lock inversion that is avoided using 102 + device_hotplug_lock when adding memory and user space tries to online that 103 + memory faster than expected: 104 + 105 + - device_online() will first take the device_lock(), followed by 106 + mem_hotplug_lock 107 + - add_memory_resource() will first take the mem_hotplug_lock, followed by 108 + the device_lock() (while creating the devices, during bus_add_device()). 109 + 110 + As the device is visible to user space before taking the device_lock(), this 111 + can result in a lock inversion. 112 + 113 + onlining/offlining of memory should be done via device_online()/ 114 + device_offline() - to make sure it is properly synchronized to actions 115 + via sysfs. Holding device_hotplug_lock is advised (to e.g. protect online_type) 116 + 117 + When adding/removing/onlining/offlining memory or adding/removing 118 + heterogeneous/device memory, we should always hold the mem_hotplug_lock in 119 + write mode to serialise memory hotplug (e.g. access to global/zone 120 + variables). 121 + 122 + In addition, mem_hotplug_lock (in contrast to device_hotplug_lock) in read 123 + mode allows for a quite efficient get_online_mems/put_online_mems 124 + implementation, so code accessing memory can protect from that memory 125 + vanishing.
+2
Documentation/core-api/mm-api.rst
··· 14 14 .. kernel-doc:: mm/util.c 15 15 :functions: get_user_pages_fast 16 16 17 + .. _mm-api-gfp-flags: 18 + 17 19 Memory Allocation Controls 18 20 ========================== 19 21
+3 -3
Documentation/core-api/printk-formats.rst
··· 376 376 377 377 Passed by reference. 378 378 379 - kobjects 380 - -------- 379 + Device tree nodes 380 + ----------------- 381 381 382 382 :: 383 383 384 384 %pOF[fnpPcCF] 385 385 386 386 387 - For printing kobject based structs (device nodes). Default behaviour is 387 + For printing device tree node structures. Default behaviour is 388 388 equivalent to %pOFf. 389 389 390 390 - f - device node full_name
+19 -4
Documentation/dev-tools/coccinelle.rst
··· 30 30 - NetBSD 31 31 - FreeBSD 32 32 33 - You can get the latest version released from the Coccinelle homepage at 33 + Some distribution packages are obsolete and it is recommended 34 + to use the latest version released from the Coccinelle homepage at 34 35 http://coccinelle.lip6.fr/ 35 36 36 - Once you have it, run the following command:: 37 + Or from Github at: 37 38 38 - ./configure 39 + https://github.com/coccinelle/coccinelle 40 + 41 + Once you have it, run the following commands:: 42 + 43 + ./autogen 44 + ./configure 39 45 make 40 46 41 47 as a regular user, and install it with:: 42 48 43 49 sudo make install 50 + 51 + More detailed installation instructions to build from source can be 52 + found at: 53 + 54 + https://github.com/coccinelle/coccinelle/blob/master/install.txt 44 55 45 56 Supplemental documentation 46 57 --------------------------- ··· 61 50 https://bottest.wiki.kernel.org/coccicheck 62 51 63 52 The wiki documentation always refers to the linux-next version of the script. 53 + 54 + For Semantic Patch Language(SmPL) grammar documentation refer to: 55 + 56 + http://coccinelle.lip6.fr/documentation.php 64 57 65 58 Using Coccinelle on the Linux kernel 66 59 ------------------------------------ ··· 238 223 proper dir, as such the second rule above would be implied for picking up a 239 224 .cocciconfig when using ``make coccicheck``. 240 225 241 - ``make coccicheck`` also supports using M= targets.If you do not supply 226 + ``make coccicheck`` also supports using M= targets. If you do not supply 242 227 any M= target, it is assumed you want to target the entire kernel. 243 228 The kernel coccicheck script has:: 244 229
+1 -1
Documentation/dev-tools/kselftest.rst
··· 159 159 * If a test needs specific kernel config options enabled, add a config file in 160 160 the test directory to enable them. 161 161 162 - e.g: tools/testing/selftests/android/ion/config 162 + e.g: tools/testing/selftests/android/config 163 163 164 164 Test Harness 165 165 ============
+4
Documentation/device-mapper/dm-flakey.txt
··· 33 33 All write I/O is silently ignored. 34 34 Read I/O is handled correctly. 35 35 36 + error_writes: 37 + All write I/O is failed with an error signalled. 38 + Read I/O is handled correctly. 39 + 36 40 corrupt_bio_byte <Nth_byte> <direction> <value> <flags>: 37 41 During <down interval>, replace <Nth_byte> of the data of 38 42 each matching bio with <value>.
-12
Documentation/devicetree/00-INDEX
··· 1 - Documentation for device trees, a data structure by which bootloaders pass 2 - hardware layout to Linux in a device-independent manner, simplifying hardware 3 - probing. This subsystem is maintained by Grant Likely 4 - <grant.likely@secretlab.ca> and has a mailing list at 5 - https://lists.ozlabs.org/listinfo/devicetree-discuss 6 - 7 - 00-INDEX 8 - - this file 9 - booting-without-of.txt 10 - - Booting Linux without Open Firmware, describes history and format of device trees. 11 - usage-model.txt 12 - - How Linux uses DT and what DT aims to solve.
+3
Documentation/driver-api/basics.rst
··· 121 121 .. kernel-doc:: kernel/rcu/update.c 122 122 :export: 123 123 124 + .. kernel-doc:: include/linux/overflow.h 125 + :internal: 126 + 124 127 Device Resource Management 125 128 -------------------------- 126 129
+48
Documentation/driver-api/firewire.rst
··· 1 + =========================================== 2 + Firewire (IEEE 1394) driver Interface Guide 3 + =========================================== 4 + 5 + Introduction and Overview 6 + ========================= 7 + 8 + The Linux FireWire subsystem adds some interfaces into the Linux system to 9 + use/maintain+any resource on IEEE 1394 bus. 10 + 11 + The main purpose of these interfaces is to access address space on each node 12 + on IEEE 1394 bus by ISO/IEC 13213 (IEEE 1212) procedure, and to control 13 + isochronous resources on the bus by IEEE 1394 procedure. 14 + 15 + Two types of interfaces are added, according to consumers of the interface. A 16 + set of userspace interfaces is available via `firewire character devices`. A set 17 + of kernel interfaces is available via exported symbols in `firewire-core` module. 18 + 19 + Firewire char device data structures 20 + ==================================== 21 + 22 + .. include:: /ABI/stable/firewire-cdev 23 + :literal: 24 + 25 + .. kernel-doc:: include/uapi/linux/firewire-cdev.h 26 + :internal: 27 + 28 + Firewire device probing and sysfs interfaces 29 + ============================================ 30 + 31 + .. include:: /ABI/stable/sysfs-bus-firewire 32 + :literal: 33 + 34 + .. kernel-doc:: drivers/firewire/core-device.c 35 + :export: 36 + 37 + Firewire core transaction interfaces 38 + ==================================== 39 + 40 + .. kernel-doc:: drivers/firewire/core-transaction.c 41 + :export: 42 + 43 + Firewire Isochronous I/O interfaces 44 + =================================== 45 + 46 + .. kernel-doc:: drivers/firewire/core-iso.c 47 + :export: 48 +
+1
Documentation/driver-api/index.rst
··· 29 29 iio/index 30 30 input 31 31 usb/index 32 + firewire 32 33 pci 33 34 spi 34 35 i2c
+14 -3
Documentation/efi-stub.txt
··· 83 83 The "dtb=" option 84 84 ----------------- 85 85 86 - For the ARM and arm64 architectures, we also need to be able to provide a 87 - device tree to the kernel. This is done with the "dtb=" command line option, 88 - and is processed in the same manner as the "initrd=" option that is 86 + For the ARM and arm64 architectures, a device tree must be provided to 87 + the kernel. Normally firmware shall supply the device tree via the 88 + EFI CONFIGURATION TABLE. However, the "dtb=" command line option can 89 + be used to override the firmware supplied device tree, or to supply 90 + one when firmware is unable to. 91 + 92 + Please note: Firmware adds runtime configuration information to the 93 + device tree before booting the kernel. If dtb= is used to override 94 + the device tree, then any runtime data provided by firmware will be 95 + lost. The dtb= option should only be used either as a debug tool, or 96 + as a last resort when a device tree is not provided in the EFI 97 + CONFIGURATION TABLE. 98 + 99 + "dtb=" is processed in the same manner as the "initrd=" option that is 89 100 described above.
-75
Documentation/fb/00-INDEX
··· 1 - Index of files in Documentation/fb. If you think something about frame 2 - buffer devices needs an entry here, needs correction or you've written one 3 - please mail me. 4 - Geert Uytterhoeven <geert@linux-m68k.org> 5 - 6 - 00-INDEX 7 - - this file. 8 - api.txt 9 - - The frame buffer API between applications and buffer devices. 10 - arkfb.txt 11 - - info on the fbdev driver for ARK Logic chips. 12 - aty128fb.txt 13 - - info on the ATI Rage128 frame buffer driver. 14 - cirrusfb.txt 15 - - info on the driver for Cirrus Logic chipsets. 16 - cmap_xfbdev.txt 17 - - an introduction to fbdev's cmap structures. 18 - deferred_io.txt 19 - - an introduction to deferred IO. 20 - efifb.txt 21 - - info on the EFI platform driver for Intel based Apple computers. 22 - ep93xx-fb.txt 23 - - info on the driver for EP93xx LCD controller. 24 - fbcon.txt 25 - - intro to and usage guide for the framebuffer console (fbcon). 26 - framebuffer.txt 27 - - introduction to frame buffer devices. 28 - gxfb.txt 29 - - info on the framebuffer driver for AMD Geode GX2 based processors. 30 - intel810.txt 31 - - documentation for the Intel 810/815 framebuffer driver. 32 - intelfb.txt 33 - - docs for Intel 830M/845G/852GM/855GM/865G/915G/945G fb driver. 34 - internals.txt 35 - - quick overview of frame buffer device internals. 36 - lxfb.txt 37 - - info on the framebuffer driver for AMD Geode LX based processors. 38 - matroxfb.txt 39 - - info on the Matrox framebuffer driver for Alpha, Intel and PPC. 40 - metronomefb.txt 41 - - info on the driver for the Metronome display controller. 42 - modedb.txt 43 - - info on the video mode database. 44 - pvr2fb.txt 45 - - info on the PowerVR 2 frame buffer driver. 46 - pxafb.txt 47 - - info on the driver for the PXA25x LCD controller. 48 - s3fb.txt 49 - - info on the fbdev driver for S3 Trio/Virge chips. 50 - sa1100fb.txt 51 - - information about the driver for the SA-1100 LCD controller. 52 - sh7760fb.txt 53 - - info on the SH7760/SH7763 integrated LCDC Framebuffer driver. 54 - sisfb.txt 55 - - info on the framebuffer device driver for various SiS chips. 56 - sm501.txt 57 - - info on the framebuffer device driver for sm501 videoframebuffer. 58 - sstfb.txt 59 - - info on the frame buffer driver for 3dfx' Voodoo Graphics boards. 60 - tgafb.txt 61 - - info on the TGA (DECChip 21030) frame buffer driver. 62 - tridentfb.txt 63 - info on the framebuffer driver for some Trident chip based cards. 64 - udlfb.txt 65 - - Driver for DisplayLink USB 2.0 chips. 66 - uvesafb.txt 67 - - info on the userspace VESA (VBE2+ compliant) frame buffer device. 68 - vesafb.txt 69 - - info on the VESA frame buffer device. 70 - viafb.modes 71 - - list of modes for VIA Integration Graphic Chip. 72 - viafb.txt 73 - - info on the VIA Integration Graphic Chip console framebuffer driver. 74 - vt8623fb.txt 75 - - info on the fb driver for the graphics core in VIA VT8623 chipsets.
+2 -2
Documentation/fb/vesafb.txt
··· 114 114 115 115 You can pass options to vesafb using "video=vesafb:option" on 116 116 the kernel command line. Multiple options should be separated 117 - by comma, like this: "video=vesafb:ypan,invers" 117 + by comma, like this: "video=vesafb:ypan,inverse" 118 118 119 119 Accepted options: 120 120 121 - invers no comment... 121 + inverse use inverse color map 122 122 123 123 ypan enable display panning using the VESA protected mode 124 124 interface. The visible screen is just a window of the
-153
Documentation/filesystems/00-INDEX
··· 1 - 00-INDEX 2 - - this file (info on some of the filesystems supported by linux). 3 - Locking 4 - - info on locking rules as they pertain to Linux VFS. 5 - 9p.txt 6 - - 9p (v9fs) is an implementation of the Plan 9 remote fs protocol. 7 - adfs.txt 8 - - info and mount options for the Acorn Advanced Disc Filing System. 9 - afs.txt 10 - - info and examples for the distributed AFS (Andrew File System) fs. 11 - affs.txt 12 - - info and mount options for the Amiga Fast File System. 13 - autofs-mount-control.txt 14 - - info on device control operations for autofs module. 15 - automount-support.txt 16 - - information about filesystem automount support. 17 - befs.txt 18 - - information about the BeOS filesystem for Linux. 19 - bfs.txt 20 - - info for the SCO UnixWare Boot Filesystem (BFS). 21 - btrfs.txt 22 - - info for the BTRFS filesystem. 23 - caching/ 24 - - directory containing filesystem cache documentation. 25 - ceph.txt 26 - - info for the Ceph Distributed File System. 27 - cifs/ 28 - - directory containing CIFS filesystem documentation and example code. 29 - coda.txt 30 - - description of the CODA filesystem. 31 - configfs/ 32 - - directory containing configfs documentation and example code. 33 - cramfs.txt 34 - - info on the cram filesystem for small storage (ROMs etc). 35 - dax.txt 36 - - info on avoiding the page cache for files stored on CPU-addressable 37 - storage devices. 38 - debugfs.txt 39 - - info on the debugfs filesystem. 40 - devpts.txt 41 - - info on the devpts filesystem. 42 - directory-locking 43 - - info about the locking scheme used for directory operations. 44 - dlmfs.txt 45 - - info on the userspace interface to the OCFS2 DLM. 46 - dnotify.txt 47 - - info about directory notification in Linux. 48 - dnotify_test.c 49 - - example program for dnotify. 50 - ecryptfs.txt 51 - - docs on eCryptfs: stacked cryptographic filesystem for Linux. 52 - efivarfs.txt 53 - - info for the efivarfs filesystem. 54 - exofs.txt 55 - - info, usage, mount options, design about EXOFS. 56 - ext2.txt 57 - - info, mount options and specifications for the Ext2 filesystem. 58 - ext3.txt 59 - - info, mount options and specifications for the Ext3 filesystem. 60 - ext4.txt 61 - - info, mount options and specifications for the Ext4 filesystem. 62 - f2fs.txt 63 - - info and mount options for the F2FS filesystem. 64 - fiemap.txt 65 - - info on fiemap ioctl. 66 - files.txt 67 - - info on file management in the Linux kernel. 68 - fuse.txt 69 - - info on the Filesystem in User SpacE including mount options. 70 - gfs2-glocks.txt 71 - - info on the Global File System 2 - Glock internal locking rules. 72 - gfs2-uevents.txt 73 - - info on the Global File System 2 - uevents. 74 - gfs2.txt 75 - - info on the Global File System 2. 76 - hfs.txt 77 - - info on the Macintosh HFS Filesystem for Linux. 78 - hfsplus.txt 79 - - info on the Macintosh HFSPlus Filesystem for Linux. 80 - hpfs.txt 81 - - info and mount options for the OS/2 HPFS. 82 - inotify.txt 83 - - info on the powerful yet simple file change notification system. 84 - isofs.txt 85 - - info and mount options for the ISO 9660 (CDROM) filesystem. 86 - jfs.txt 87 - - info and mount options for the JFS filesystem. 88 - locks.txt 89 - - info on file locking implementations, flock() vs. fcntl(), etc. 90 - mandatory-locking.txt 91 - - info on the Linux implementation of Sys V mandatory file locking. 92 - nfs/ 93 - - nfs-related documentation. 94 - nilfs2.txt 95 - - info and mount options for the NILFS2 filesystem. 96 - ntfs.txt 97 - - info and mount options for the NTFS filesystem (Windows NT). 98 - ocfs2.txt 99 - - info and mount options for the OCFS2 clustered filesystem. 100 - omfs.txt 101 - - info on the Optimized MPEG FileSystem. 102 - path-lookup.txt 103 - - info on path walking and name lookup locking. 104 - pohmelfs/ 105 - - directory containing pohmelfs filesystem documentation. 106 - porting 107 - - various information on filesystem porting. 108 - proc.txt 109 - - info on Linux's /proc filesystem. 110 - qnx6.txt 111 - - info on the QNX6 filesystem. 112 - quota.txt 113 - - info on Quota subsystem. 114 - ramfs-rootfs-initramfs.txt 115 - - info on the 'in memory' filesystems ramfs, rootfs and initramfs. 116 - relay.txt 117 - - info on relay, for efficient streaming from kernel to user space. 118 - romfs.txt 119 - - description of the ROMFS filesystem. 120 - seq_file.txt 121 - - how to use the seq_file API. 122 - sharedsubtree.txt 123 - - a description of shared subtrees for namespaces. 124 - spufs.txt 125 - - info and mount options for the SPU filesystem used on Cell. 126 - squashfs.txt 127 - - info on the squashfs filesystem. 128 - sysfs-pci.txt 129 - - info on accessing PCI device resources through sysfs. 130 - sysfs-tagging.txt 131 - - info on sysfs tagging to avoid duplicates. 132 - sysfs.txt 133 - - info on sysfs, a ram-based filesystem for exporting kernel objects. 134 - sysv-fs.txt 135 - - info on the SystemV/V7/Xenix/Coherent filesystem. 136 - tmpfs.txt 137 - - info on tmpfs, a filesystem that holds all files in virtual memory. 138 - ubifs.txt 139 - - info on the Unsorted Block Images FileSystem. 140 - udf.txt 141 - - info and mount options for the UDF filesystem. 142 - ufs.txt 143 - - info on the ufs filesystem. 144 - vfat.txt 145 - - info on using the VFAT filesystem used in Windows NT and Windows 95. 146 - vfs.txt 147 - - overview of the Virtual File System. 148 - xfs-delayed-logging-design.txt 149 - - info on the XFS Delayed Logging Design. 150 - xfs-self-describing-metadata.txt 151 - - info on XFS Self Describing Metadata. 152 - xfs.txt 153 - - info and mount options for the XFS filesystem.
+1 -1
Documentation/filesystems/dax.txt
··· 75 75 76 76 These filesystems may be used for inspiration: 77 77 - ext2: see Documentation/filesystems/ext2.txt 78 - - ext4: see Documentation/filesystems/ext4.txt 78 + - ext4: see Documentation/filesystems/ext4/ext4.rst 79 79 - xfs: see Documentation/filesystems/xfs.txt 80 80 81 81
+1 -1
Documentation/filesystems/ext2.txt
··· 358 358 the time of the crash, then there is no guarantee of consistency for 359 359 the blocks in that transaction so they are discarded (which means any 360 360 filesystem changes they represent are also lost). 361 - Check Documentation/filesystems/ext4.txt if you want to read more about 361 + Check Documentation/filesystems/ext4/ext4.rst if you want to read more about 362 362 ext4 and journaling. 363 363 364 364 References
-26
Documentation/filesystems/nfs/00-INDEX
··· 1 - 00-INDEX 2 - - this file (nfs-related documentation). 3 - Exporting 4 - - explanation of how to make filesystems exportable. 5 - fault_injection.txt 6 - - information for using fault injection on the server 7 - knfsd-stats.txt 8 - - statistics which the NFS server makes available to user space. 9 - nfs.txt 10 - - nfs client, and DNS resolution for fs_locations. 11 - nfs41-server.txt 12 - - info on the Linux server implementation of NFSv4 minor version 1. 13 - nfs-rdma.txt 14 - - how to install and setup the Linux NFS/RDMA client and server software 15 - nfsd-admin-interfaces.txt 16 - - Administrative interfaces for nfsd. 17 - nfsroot.txt 18 - - short guide on setting up a diskless box with NFS root filesystem. 19 - pnfs.txt 20 - - short explanation of some of the internals of the pnfs client code 21 - rpc-cache.txt 22 - - introduction to the caching mechanisms in the sunrpc layer. 23 - idmapper.txt 24 - - information for configuring request-keys to be used by idmapper 25 - rpc-server-gss.txt 26 - - Information on GSS authentication support in the NFS Server
-38
Documentation/fmc/00-INDEX
··· 1 - 2 - Documentation in this directory comes from sections of the manual we 3 - wrote for the externally-developed fmc-bus package. The complete 4 - manual as of today (2013-02) is available in PDF format at 5 - http://www.ohwr.org/projects/fmc-bus/files 6 - 7 - 00-INDEX 8 - - this file. 9 - 10 - FMC-and-SDB.txt 11 - - What are FMC and SDB, basic concepts for this framework 12 - 13 - API.txt 14 - - The functions that are exported by the bus driver 15 - 16 - parameters.txt 17 - - The module parameters 18 - 19 - carrier.txt 20 - - writing a carrier (a device) 21 - 22 - mezzanine.txt 23 - - writing code for your mezzanine (a driver) 24 - 25 - identifiers.txt 26 - - how identification and matching works 27 - 28 - fmc-fakedev.txt 29 - - about drivers/fmc/fmc-fakedev.ko 30 - 31 - fmc-trivial.txt 32 - - about drivers/fmc/fmc-trivial.ko 33 - 34 - fmc-write-eeprom.txt 35 - - about drivers/fmc/fmc-write-eeprom.ko 36 - 37 - fmc-chardev.txt 38 - - about drivers/fmc/fmc-chardev.ko
-4
Documentation/gpio/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - sysfs.txt 4 - - Information about the GPIO sysfs interface
-14
Documentation/ide/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - ChangeLog.ide-cd.1994-2004 4 - - ide-cd changelog 5 - ChangeLog.ide-floppy.1996-2002 6 - - ide-floppy changelog 7 - ChangeLog.ide-tape.1995-2002 8 - - ide-tape changelog 9 - ide-tape.txt 10 - - info on the IDE ATAPI streaming tape driver 11 - ide.txt 12 - - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). 13 - warm-plug-howto.txt 14 - - using sysfs to remove and add IDE devices.
+1 -4
Documentation/index.rst
··· 22 22 (GPLv2), how to properly mark the license of individual files in the source 23 23 tree, as well as links to the full license text. 24 24 25 - .. toctree:: 26 - :maxdepth: 2 27 - 28 - process/license-rules.rst 25 + * :ref:`kernel_licensing` 29 26 30 27 User-oriented documentation 31 28 ---------------------------
-12
Documentation/ioctl/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - botching-up-ioctls.txt 4 - - how to avoid botching up ioctls 5 - cdrom.txt 6 - - summary of CDROM ioctl calls 7 - hdio.txt 8 - - summary of HDIO_ ioctl calls 9 - ioctl-decoding.txt 10 - - how to decode the bits of an IOCTL code 11 - ioctl-number.txt 12 - - how to implement and register device/driver ioctl calls
-42
Documentation/isdn/00-INDEX
··· 1 - 00-INDEX 2 - - this file (info on ISDN implementation for Linux) 3 - CREDITS 4 - - list of the kind folks that brought you this stuff. 5 - HiSax.cert 6 - - information about the ITU approval certification of the HiSax driver. 7 - INTERFACE 8 - - description of isdn4linux Link Level and Hardware Level interfaces. 9 - INTERFACE.fax 10 - - description of the fax subinterface of isdn4linux. 11 - INTERFACE.CAPI 12 - - description of kernel CAPI Link Level to Hardware Level interface. 13 - README 14 - - general info on what you need and what to do for Linux ISDN. 15 - README.FAQ 16 - - general info for FAQ. 17 - README.HiSax 18 - - info on the HiSax driver which replaces the old teles. 19 - README.audio 20 - - info for running audio over ISDN. 21 - README.avmb1 22 - - info on driver for AVM-B1 ISDN card. 23 - README.concap 24 - - info on "CONCAP" encapsulation protocol interface used for X.25. 25 - README.diversion 26 - - info on module for isdn diversion services. 27 - README.fax 28 - - info for using Fax over ISDN. 29 - README.gigaset 30 - - info on the drivers for Siemens Gigaset ISDN adapters 31 - README.hfc-pci 32 - - info on hfc-pci based cards. 33 - README.hysdn 34 - - info on driver for Hypercope active HYSDN cards 35 - README.mISDN 36 - - info on the Modular ISDN subsystem (mISDN) 37 - README.syncppp 38 - - info on running Sync PPP over ISDN. 39 - README.x25 40 - - info for running X.25 over ISDN. 41 - syncPPP.FAQ 42 - - frequently asked questions about running PPP over ISDN.
-14
Documentation/kbuild/00-INDEX
··· 1 - 00-INDEX 2 - - this file: info on the kernel build process 3 - headers_install.txt 4 - - how to export Linux headers for use by userspace 5 - kbuild.txt 6 - - developer information on kbuild 7 - kconfig.txt 8 - - usage help for make *config 9 - kconfig-language.txt 10 - - specification of Config Language, the language in Kconfig files 11 - makefiles.txt 12 - - developer information for linux kernel makefiles 13 - modules.txt 14 - - how to build modules and to install them
-16
Documentation/laptops/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - asus-laptop.txt 4 - - information on the Asus Laptop Extras driver. 5 - disk-shock-protection.txt 6 - - information on hard disk shock protection. 7 - laptop-mode.txt 8 - - how to conserve battery power using laptop-mode. 9 - sony-laptop.txt 10 - - Sony Notebook Control Driver (SNC) Readme. 11 - sonypi.txt 12 - - info on Linux Sony Programmable I/O Device support. 13 - thinkpad-acpi.txt 14 - - information on the (IBM and Lenovo) ThinkPad ACPI Extras driver. 15 - toshiba_haps.txt 16 - - information on the Toshiba HDD Active Protection Sensor driver.
-32
Documentation/leds/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - leds-blinkm.txt 4 - - Driver for BlinkM LED-devices. 5 - leds-class.txt 6 - - documents LED handling under Linux. 7 - leds-class-flash.txt 8 - - documents flash LED handling under Linux. 9 - leds-lm3556.txt 10 - - notes on how to use the leds-lm3556 driver. 11 - leds-lp3944.txt 12 - - notes on how to use the leds-lp3944 driver. 13 - leds-lp5521.txt 14 - - notes on how to use the leds-lp5521 driver. 15 - leds-lp5523.txt 16 - - notes on how to use the leds-lp5523 driver. 17 - leds-lp5562.txt 18 - - notes on how to use the leds-lp5562 driver. 19 - leds-lp55xx.txt 20 - - description about lp55xx common driver. 21 - leds-lm3556.txt 22 - - notes on how to use the leds-lm3556 driver. 23 - leds-mlxcpld.txt 24 - - notes on how to use the leds-mlxcpld driver. 25 - ledtrig-oneshot.txt 26 - - One-shot LED trigger for both sporadic and dense events. 27 - ledtrig-transient.txt 28 - - LED Transient Trigger, one shot timer activation. 29 - ledtrig-usbport.txt 30 - - notes on how to use the drivers/usb/core/ledtrig-usbport.c trigger. 31 - uleds.txt 32 - - notes on how to use the uleds driver.
-16
Documentation/locking/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - lockdep-design.txt 4 - - documentation on the runtime locking correctness validator. 5 - lockstat.txt 6 - - info on collecting statistics on locks (and contention). 7 - mutex-design.txt 8 - - info on the generic mutex subsystem. 9 - rt-mutex-design.txt 10 - - description of the RealTime mutex implementation design. 11 - rt-mutex.txt 12 - - desc. of RT-mutex subsystem with PI (Priority Inheritance) support. 13 - spinlocks.txt 14 - - info on using spinlocks to provide exclusive access in kernel. 15 - ww-mutex-design.txt 16 - - Intro to Mutex wait/would deadlock handling.s
-7
Documentation/m68k/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - README.buddha 4 - - Amiga Buddha and Catweasel IDE Driver 5 - kernel-options.txt 6 - - command line options for Linux/m68k 7 -
+33 -136
Documentation/memory-hotplug.txt Documentation/admin-guide/mm/memory-hotplug.rst
··· 1 + .. _admin_guide_memory_hotplug: 2 + 1 3 ============== 2 4 Memory Hotplug 3 5 ============== ··· 11 9 Because Memory Hotplug is still under development, contents of this text will 12 10 be changed often. 13 11 14 - .. CONTENTS 15 - 16 - 1. Introduction 17 - 1.1 purpose of memory hotplug 18 - 1.2. Phases of memory hotplug 19 - 1.3. Unit of Memory online/offline operation 20 - 2. Kernel Configuration 21 - 3. sysfs files for memory hotplug 22 - 4. Physical memory hot-add phase 23 - 4.1 Hardware(Firmware) Support 24 - 4.2 Notify memory hot-add event by hand 25 - 5. Logical Memory hot-add phase 26 - 5.1. State of memory 27 - 5.2. How to online memory 28 - 6. Logical memory remove 29 - 6.1 Memory offline and ZONE_MOVABLE 30 - 6.2. How to offline memory 31 - 7. Physical memory remove 32 - 8. Memory hotplug event notifier 33 - 9. Future Work List 34 - 12 + .. contents:: :local: 35 13 36 14 .. note:: 37 15 38 16 (1) x86_64's has special implementation for memory hotplug. 39 17 This text does not describe it. 40 - (2) This text assumes that sysfs is mounted at /sys. 18 + (2) This text assumes that sysfs is mounted at ``/sys``. 41 19 42 20 43 21 Introduction 44 22 ============ 45 23 46 - purpose of memory hotplug 24 + Purpose of memory hotplug 47 25 ------------------------- 48 26 49 27 Memory Hotplug allows users to increase/decrease the amount of memory. ··· 38 56 hardware which supports memory power management. 39 57 40 58 Linux memory hotplug is designed for both purpose. 41 - 42 59 43 60 Phases of memory hotplug 44 61 ------------------------ ··· 73 92 (However, if you writes udev's hotplug scripts for memory hotplug, these 74 93 phases can be execute in seamless way.) 75 94 76 - 77 95 Unit of Memory online/offline operation 78 96 --------------------------------------- 79 97 ··· 87 107 default size of a memory block is the same as memory section size unless an 88 108 architecture specifies otherwise. (see :ref:`memory_hotplug_sysfs_files`.) 89 109 90 - To determine the size (in bytes) of a memory block please read this file: 110 + To determine the size (in bytes) of a memory block please read this file:: 91 111 92 - /sys/devices/system/memory/block_size_bytes 93 - 112 + /sys/devices/system/memory/block_size_bytes 94 113 95 114 Kernel Configuration 96 115 ==================== ··· 98 119 config options. 99 120 100 121 - For all memory hotplug: 101 - - Memory model -> Sparse Memory (CONFIG_SPARSEMEM) 102 - - Allow for memory hot-add (CONFIG_MEMORY_HOTPLUG) 122 + - Memory model -> Sparse Memory (``CONFIG_SPARSEMEM``) 123 + - Allow for memory hot-add (``CONFIG_MEMORY_HOTPLUG``) 103 124 104 125 - To enable memory removal, the following are also necessary: 105 - - Allow for memory hot remove (CONFIG_MEMORY_HOTREMOVE) 106 - - Page Migration (CONFIG_MIGRATION) 126 + - Allow for memory hot remove (``CONFIG_MEMORY_HOTREMOVE``) 127 + - Page Migration (``CONFIG_MIGRATION``) 107 128 108 129 - For ACPI memory hotplug, the following are also necessary: 109 - - Memory hotplug (under ACPI Support menu) (CONFIG_ACPI_HOTPLUG_MEMORY) 130 + - Memory hotplug (under ACPI Support menu) (``CONFIG_ACPI_HOTPLUG_MEMORY``) 110 131 - This option can be kernel module. 111 132 112 133 - As a related configuration, if your box has a feature of NUMA-node hotplug 113 134 via ACPI, then this option is necessary too. 114 135 115 136 - ACPI0004,PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu) 116 - (CONFIG_ACPI_CONTAINER). 137 + (``CONFIG_ACPI_CONTAINER``). 117 138 118 139 This option can be kernel module too. 119 140 ··· 124 145 ============================== 125 146 126 147 All memory blocks have their device information in sysfs. Each memory block 127 - is described under /sys/devices/system/memory as: 148 + is described under ``/sys/devices/system/memory`` as:: 128 149 129 150 /sys/devices/system/memory/memoryXXX 130 - (XXX is the memory block id.) 151 + 152 + where XXX is the memory block id. 131 153 132 154 For the memory block covered by the sysfs directory. It is expected that all 133 155 memory sections in this range are present and no memory holes exist in the ··· 137 157 block. 138 158 139 159 For example, assume 1GiB memory block size. A device for a memory starting at 140 - 0x100000000 is /sys/device/system/memory/memory4:: 160 + 0x100000000 is ``/sys/device/system/memory/memory4``:: 141 161 142 162 (0x100000000 / 1Gib = 4) 143 163 ··· 145 165 146 166 Under each memory block, you can see 5 files: 147 167 148 - - /sys/devices/system/memory/memoryXXX/phys_index 149 - - /sys/devices/system/memory/memoryXXX/phys_device 150 - - /sys/devices/system/memory/memoryXXX/state 151 - - /sys/devices/system/memory/memoryXXX/removable 152 - - /sys/devices/system/memory/memoryXXX/valid_zones 168 + - ``/sys/devices/system/memory/memoryXXX/phys_index`` 169 + - ``/sys/devices/system/memory/memoryXXX/phys_device`` 170 + - ``/sys/devices/system/memory/memoryXXX/state`` 171 + - ``/sys/devices/system/memory/memoryXXX/removable`` 172 + - ``/sys/devices/system/memory/memoryXXX/valid_zones`` 153 173 154 174 =================== ============================================================ 155 175 ``phys_index`` read-only and contains memory block id, same as XXX. ··· 187 207 These directories/files appear after physical memory hotplug phase. 188 208 189 209 If CONFIG_NUMA is enabled the memoryXXX/ directories can also be accessed 190 - via symbolic links located in the /sys/devices/system/node/node* directories. 210 + via symbolic links located in the ``/sys/devices/system/node/node*`` directories. 191 211 192 - For example: 193 - /sys/devices/system/node/node0/memory9 -> ../../memory/memory9 212 + For example:: 194 213 195 - A backlink will also be created: 196 - /sys/devices/system/memory/memory9/node0 -> ../../node/node0 214 + /sys/devices/system/node/node0/memory9 -> ../../memory/memory9 215 + 216 + A backlink will also be created:: 217 + 218 + /sys/devices/system/memory/memory9/node0 -> ../../node/node0 197 219 198 220 .. _memory_hotplug_physical_mem: 199 221 ··· 222 240 calls hotplug code for all of objects which are defined in it. 223 241 If memory device is found, memory hotplug code will be called. 224 242 225 - 226 243 Notify memory hot-add event by hand 227 244 ----------------------------------- 228 245 ··· 232 251 if hotplug is supported, although for x86 this should be handled by ACPI 233 252 notification. 234 253 235 - Probe interface is located at 236 - /sys/devices/system/memory/probe 254 + Probe interface is located at:: 255 + 256 + /sys/devices/system/memory/probe 237 257 238 258 You can tell the physical address of new memory to the kernel by:: 239 259 ··· 244 262 memory_block_size] memory range is hot-added. In this case, hotplug script is 245 263 not called (in current implementation). You'll have to online memory by 246 264 yourself. Please see :ref:`memory_hotplug_how_to_online_memory`. 247 - 248 265 249 266 Logical Memory hot-add phase 250 267 ============================ ··· 282 301 be hotplugged. Currently offline blocks keep their state. It is possible, under 283 302 certain circumstances, that some memory blocks will be added but will fail to 284 303 online. User space tools can check their "state" files 285 - (/sys/devices/system/memory/memoryXXX/state) and try to online them manually. 304 + (``/sys/devices/system/memory/memoryXXX/state``) and try to online them manually. 286 305 287 306 If the automatic onlining wasn't requested, failed, or some memory block was 288 307 offlined it is possible to change the individual block's state by writing to the ··· 314 333 available memory will be increased. 315 334 316 335 This may be changed in future. 317 - 318 - 319 336 320 337 Logical memory remove 321 338 ===================== ··· 391 412 Need more implementation yet.... 392 413 - Notification completion of remove works by OS to firmware. 393 414 - Guard from remove if not yet. 394 - 395 - Memory hotplug event notifier 396 - ============================= 397 - 398 - Hotplugging events are sent to a notification queue. 399 - 400 - There are six types of notification defined in include/linux/memory.h: 401 - 402 - MEM_GOING_ONLINE 403 - Generated before new memory becomes available in order to be able to 404 - prepare subsystems to handle memory. The page allocator is still unable 405 - to allocate from the new memory. 406 - 407 - MEM_CANCEL_ONLINE 408 - Generated if MEMORY_GOING_ONLINE fails. 409 - 410 - MEM_ONLINE 411 - Generated when memory has successfully brought online. The callback may 412 - allocate pages from the new memory. 413 - 414 - MEM_GOING_OFFLINE 415 - Generated to begin the process of offlining memory. Allocations are no 416 - longer possible from the memory but some of the memory to be offlined 417 - is still in use. The callback can be used to free memory known to a 418 - subsystem from the indicated memory block. 419 - 420 - MEM_CANCEL_OFFLINE 421 - Generated if MEMORY_GOING_OFFLINE fails. Memory is available again from 422 - the memory block that we attempted to offline. 423 - 424 - MEM_OFFLINE 425 - Generated after offlining memory is complete. 426 - 427 - A callback routine can be registered by calling:: 428 - 429 - hotplug_memory_notifier(callback_func, priority) 430 - 431 - Callback functions with higher values of priority are called before callback 432 - functions with lower values. 433 - 434 - A callback function must have the following prototype:: 435 - 436 - int callback_func( 437 - struct notifier_block *self, unsigned long action, void *arg); 438 - 439 - The first argument of the callback function (self) is a pointer to the block 440 - of the notifier chain that points to the callback function itself. 441 - The second argument (action) is one of the event types described above. 442 - The third argument (arg) passes a pointer of struct memory_notify:: 443 - 444 - struct memory_notify { 445 - unsigned long start_pfn; 446 - unsigned long nr_pages; 447 - int status_change_nid_normal; 448 - int status_change_nid_high; 449 - int status_change_nid; 450 - } 451 - 452 - - start_pfn is start_pfn of online/offline memory. 453 - - nr_pages is # of pages of online/offline memory. 454 - - status_change_nid_normal is set node id when N_NORMAL_MEMORY of nodemask 455 - is (will be) set/clear, if this is -1, then nodemask status is not changed. 456 - - status_change_nid_high is set node id when N_HIGH_MEMORY of nodemask 457 - is (will be) set/clear, if this is -1, then nodemask status is not changed. 458 - - status_change_nid is set node id when N_MEMORY of nodemask is (will be) 459 - set/clear. It means a new(memoryless) node gets new memory by online and a 460 - node loses all memory. If this is -1, then nodemask status is not changed. 461 - 462 - If status_changed_nid* >= 0, callback should create/discard structures for the 463 - node if necessary. 464 - 465 - The callback routine shall return one of the values 466 - NOTIFY_DONE, NOTIFY_OK, NOTIFY_BAD, NOTIFY_STOP 467 - defined in include/linux/notifier.h 468 - 469 - NOTIFY_DONE and NOTIFY_OK have no effect on the further processing. 470 - 471 - NOTIFY_BAD is used as response to the MEM_GOING_ONLINE, MEM_GOING_OFFLINE, 472 - MEM_ONLINE, or MEM_OFFLINE action to cancel hotplugging. It stops 473 - further processing of the notification queue. 474 - 475 - NOTIFY_STOP stops further processing of the notification queue. 476 415 477 416 Future Work 478 417 ===========
-4
Documentation/mips/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - AU1xxx_IDE.README 4 - - README for MIPS AU1XXX IDE driver.
-10
Documentation/mmc/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - mmc-dev-attrs.txt 4 - - info on SD and MMC device attributes 5 - mmc-dev-parts.txt 6 - - info on SD and MMC device partitions 7 - mmc-async-req.txt 8 - - info on mmc asynchronous requests 9 - mmc-tools.txt 10 - - info on mmc-utils tools
-10
Documentation/netlabel/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - cipso_ipv4.txt 4 - - documentation on the IPv4 CIPSO protocol engine. 5 - draft-ietf-cipso-ipsecurity-01.txt 6 - - IETF draft of the CIPSO protocol, dated 16 July 1992. 7 - introduction.txt 8 - - NetLabel introduction, READ THIS FIRST. 9 - lsm_interface.txt 10 - - documentation on the NetLabel kernel security module API.
+6 -5
Documentation/netlabel/cipso_ipv4.txt
··· 6 6 7 7 * Overview 8 8 9 - The NetLabel CIPSO/IPv4 protocol engine is based on the IETF Commercial IP 10 - Security Option (CIPSO) draft from July 16, 1992. A copy of this draft can be 11 - found in this directory, consult '00-INDEX' for the filename. While the IETF 12 - draft never made it to an RFC standard it has become a de-facto standard for 13 - labeled networking and is used in many trusted operating systems. 9 + The NetLabel CIPSO/IPv4 protocol engine is based on the IETF Commercial 10 + IP Security Option (CIPSO) draft from July 16, 1992. A copy of this 11 + draft can be found in this directory 12 + (draft-ietf-cipso-ipsecurity-01.txt). While the IETF draft never made 13 + it to an RFC standard it has become a de-facto standard for labeled 14 + networking and is used in many trusted operating systems. 14 15 15 16 * Outbound Packet Processing 16 17
+1 -1
Documentation/netlabel/introduction.txt
··· 22 22 the NetLabel kernel security module API described below. 23 23 24 24 Detailed information about each NetLabel protocol engine can be found in this 25 - directory, consult '00-INDEX' for filenames. 25 + directory. 26 26 27 27 * Communication Layer 28 28
-214
Documentation/networking/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - 3c509.txt 4 - - information on the 3Com Etherlink III Series Ethernet cards. 5 - 6pack.txt 6 - - info on the 6pack protocol, an alternative to KISS for AX.25 7 - LICENSE.qla3xxx 8 - - GPLv2 for QLogic Linux Networking HBA Driver 9 - LICENSE.qlge 10 - - GPLv2 for QLogic Linux qlge NIC Driver 11 - LICENSE.qlcnic 12 - - GPLv2 for QLogic Linux qlcnic NIC Driver 13 - PLIP.txt 14 - - PLIP: The Parallel Line Internet Protocol device driver 15 - README.ipw2100 16 - - README for the Intel PRO/Wireless 2100 driver. 17 - README.ipw2200 18 - - README for the Intel PRO/Wireless 2915ABG and 2200BG driver. 19 - README.sb1000 20 - - info on General Instrument/NextLevel SURFboard1000 cable modem. 21 - altera_tse.txt 22 - - Altera Triple-Speed Ethernet controller. 23 - arcnet-hardware.txt 24 - - tons of info on ARCnet, hubs, jumper settings for ARCnet cards, etc. 25 - arcnet.txt 26 - - info on the using the ARCnet driver itself. 27 - atm.txt 28 - - info on where to get ATM programs and support for Linux. 29 - ax25.txt 30 - - info on using AX.25 and NET/ROM code for Linux 31 - baycom.txt 32 - - info on the driver for Baycom style amateur radio modems 33 - bonding.txt 34 - - Linux Ethernet Bonding Driver HOWTO: link aggregation in Linux. 35 - bridge.txt 36 - - where to get user space programs for ethernet bridging with Linux. 37 - cdc_mbim.txt 38 - - 3G/LTE USB modem (Mobile Broadband Interface Model) 39 - checksum-offloads.txt 40 - - Explanation of checksum offloads; LCO, RCO 41 - cops.txt 42 - - info on the COPS LocalTalk Linux driver 43 - cs89x0.txt 44 - - the Crystal LAN (CS8900/20-based) Ethernet ISA adapter driver 45 - cxacru.txt 46 - - Conexant AccessRunner USB ADSL Modem 47 - cxacru-cf.py 48 - - Conexant AccessRunner USB ADSL Modem configuration file parser 49 - cxgb.txt 50 - - Release Notes for the Chelsio N210 Linux device driver. 51 - dccp.txt 52 - - the Datagram Congestion Control Protocol (DCCP) (RFC 4340..42). 53 - dctcp.txt 54 - - DataCenter TCP congestion control 55 - de4x5.txt 56 - - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver 57 - decnet.txt 58 - - info on using the DECnet networking layer in Linux. 59 - defza.txt 60 - - the DEC FDDIcontroller 700 (DEFZA-xx) TURBOchannel FDDI driver 61 - dl2k.txt 62 - - README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko). 63 - dm9000.txt 64 - - README for the Simtec DM9000 Network driver. 65 - dmfe.txt 66 - - info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver. 67 - dns_resolver.txt 68 - - The DNS resolver module allows kernel servies to make DNS queries. 69 - driver.txt 70 - - Softnet driver issues. 71 - ena.txt 72 - - info on Amazon's Elastic Network Adapter (ENA) 73 - eql.txt 74 - - serial IP load balancing 75 - fib_trie.txt 76 - - Level Compressed Trie (LC-trie) notes: a structure for routing. 77 - filter.txt 78 - - Linux Socket Filtering 79 - fore200e.txt 80 - - FORE Systems PCA-200E/SBA-200E ATM NIC driver info. 81 - framerelay.txt 82 - - info on using Frame Relay/Data Link Connection Identifier (DLCI). 83 - gen_stats.txt 84 - - Generic networking statistics for netlink users. 85 - generic-hdlc.txt 86 - - The generic High Level Data Link Control (HDLC) layer. 87 - generic_netlink.txt 88 - - info on Generic Netlink 89 - gianfar.txt 90 - - Gianfar Ethernet Driver. 91 - ieee802154.txt 92 - - Linux IEEE 802.15.4 implementation, API and drivers 93 - ip-sysctl.txt 94 - - /proc/sys/net/ipv4/* variables 95 - ip_dynaddr.txt 96 - - IP dynamic address hack e.g. for auto-dialup links 97 - ipddp.txt 98 - - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation 99 - iphase.txt 100 - - Interphase PCI ATM (i)Chip IA Linux driver info. 101 - ipsec.txt 102 - - Note on not compressing IPSec payload and resulting failed policy check. 103 - ipv6.txt 104 - - Options to the ipv6 kernel module. 105 - ipvs-sysctl.txt 106 - - Per-inode explanation of the /proc/sys/net/ipv4/vs interface. 107 - irda.txt 108 - - where to get IrDA (infrared) utilities and info for Linux. 109 - l2tp.txt 110 - - User guide to the L2TP tunnel protocol. 111 - lapb-module.txt 112 - - programming information of the LAPB module. 113 - ltpc.txt 114 - - the Apple or Farallon LocalTalk PC card driver 115 - mac80211-auth-assoc-deauth.txt 116 - - authentication and association / deauth-disassoc with max80211 117 - mac80211-injection.txt 118 - - HOWTO use packet injection with mac80211 119 - multiqueue.txt 120 - - HOWTO for multiqueue network device support. 121 - netconsole.txt 122 - - The network console module netconsole.ko: configuration and notes. 123 - netdev-features.txt 124 - - Network interface features API description. 125 - netdevices.txt 126 - - info on network device driver functions exported to the kernel. 127 - netif-msg.txt 128 - - Design of the network interface message level setting (NETIF_MSG_*). 129 - netlink_mmap.txt 130 - - memory mapped I/O with netlink 131 - nf_conntrack-sysctl.txt 132 - - list of netfilter-sysctl knobs. 133 - nfc.txt 134 - - The Linux Near Field Communication (NFS) subsystem. 135 - openvswitch.txt 136 - - Open vSwitch developer documentation. 137 - operstates.txt 138 - - Overview of network interface operational states. 139 - packet_mmap.txt 140 - - User guide to memory mapped packet socket rings (PACKET_[RT]X_RING). 141 - phonet.txt 142 - - The Phonet packet protocol used in Nokia cellular modems. 143 - phy.txt 144 - - The PHY abstraction layer. 145 - pktgen.txt 146 - - User guide to the kernel packet generator (pktgen.ko). 147 - policy-routing.txt 148 - - IP policy-based routing 149 - ppp_generic.txt 150 - - Information about the generic PPP driver. 151 - proc_net_tcp.txt 152 - - Per inode overview of the /proc/net/tcp and /proc/net/tcp6 interfaces. 153 - radiotap-headers.txt 154 - - Background on radiotap headers. 155 - ray_cs.txt 156 - - Raylink Wireless LAN card driver info. 157 - rds.txt 158 - - Background on the reliable, ordered datagram delivery method RDS. 159 - regulatory.txt 160 - - Overview of the Linux wireless regulatory infrastructure. 161 - rxrpc.txt 162 - - Guide to the RxRPC protocol. 163 - s2io.txt 164 - - Release notes for Neterion Xframe I/II 10GbE driver. 165 - scaling.txt 166 - - Explanation of network scaling techniques: RSS, RPS, RFS, aRFS, XPS. 167 - sctp.txt 168 - - Notes on the Linux kernel implementation of the SCTP protocol. 169 - secid.txt 170 - - Explanation of the secid member in flow structures. 171 - skfp.txt 172 - - SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info. 173 - smc9.txt 174 - - the driver for SMC's 9000 series of Ethernet cards 175 - spider_net.txt 176 - - README for the Spidernet Driver (as found in PS3 / Cell BE). 177 - stmmac.txt 178 - - README for the STMicro Synopsys Ethernet driver. 179 - tc-actions-env-rules.txt 180 - - rules for traffic control (tc) actions. 181 - timestamping.txt 182 - - overview of network packet timestamping variants. 183 - tcp-thin.txt 184 - - kernel tuning options for low rate 'thin' TCP streams. 185 - team.txt 186 - - pointer to information for ethernet teaming devices. 187 - tlan.txt 188 - - ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info. 189 - tproxy.txt 190 - - Transparent proxy support user guide. 191 - tuntap.txt 192 - - TUN/TAP device driver, allowing user space Rx/Tx of packets. 193 - udplite.txt 194 - - UDP-Lite protocol (RFC 3828) introduction. 195 - vortex.txt 196 - - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards. 197 - vxge.txt 198 - - README for the Neterion X3100 PCIe Server Adapter. 199 - vxlan.txt 200 - - Virtual extensible LAN overview 201 - x25.txt 202 - - general info on X.25 development. 203 - x25-iface.txt 204 - - description of the X.25 Packet Layer to LAPB device interface. 205 - xfrm_device.txt 206 - - description of XFRM offload API 207 - xfrm_proc.txt 208 - - description of the statistics package for XFRM. 209 - xfrm_sync.txt 210 - - sync patches for XFRM enable migration of an SA between hosts. 211 - xfrm_sysctl.txt 212 - - description of the XFRM configuration options. 213 - z8530drv.txt 214 - - info about Linux driver for Z8530 based HDLC cards for AX.25
-6
Documentation/parisc/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - debugging 4 - - some debugging hints for real-mode code 5 - registers 6 - - current/planned usage of registers
-44
Documentation/power/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - apm-acpi.txt 4 - - basic info about the APM and ACPI support. 5 - basic-pm-debugging.txt 6 - - Debugging suspend and resume 7 - charger-manager.txt 8 - - Battery charger management. 9 - admin-guide/devices.rst 10 - - How drivers interact with system-wide power management 11 - drivers-testing.txt 12 - - Testing suspend and resume support in device drivers 13 - freezing-of-tasks.txt 14 - - How processes and controlled during suspend 15 - interface.txt 16 - - Power management user interface in /sys/power 17 - opp.txt 18 - - Operating Performance Point library 19 - pci.txt 20 - - How the PCI Subsystem Does Power Management 21 - pm_qos_interface.txt 22 - - info on Linux PM Quality of Service interface 23 - power_supply_class.txt 24 - - Tells userspace about battery, UPS, AC or DC power supply properties 25 - runtime_pm.txt 26 - - Power management framework for I/O devices. 27 - s2ram.txt 28 - - How to get suspend to ram working (and debug it when it isn't) 29 - states.txt 30 - - System power management states 31 - suspend-and-cpuhotplug.txt 32 - - Explains the interaction between Suspend-to-RAM (S3) and CPU hotplug 33 - swsusp-and-swap-files.txt 34 - - Using swap files with software suspend (to disk) 35 - swsusp-dmcrypt.txt 36 - - How to use dm-crypt and software suspend (to disk) together 37 - swsusp.txt 38 - - Goals, implementation, and usage of software suspend (ACPI S3) 39 - tricks.txt 40 - - How to trick software suspend (to disk) into working when it isn't 41 - userland-swsusp.txt 42 - - Experimental implementation of software suspend in userspace 43 - video.txt 44 - - Video issues during resume from suspend
-34
Documentation/powerpc/00-INDEX
··· 1 - Index of files in Documentation/powerpc. If you think something about 2 - Linux/PPC needs an entry here, needs correction or you've written one 3 - please mail me. 4 - Cort Dougan (cort@fsmlabs.com) 5 - 6 - 00-INDEX 7 - - this file 8 - bootwrapper.txt 9 - - Information on how the powerpc kernel is wrapped for boot on various 10 - different platforms. 11 - cpu_features.txt 12 - - info on how we support a variety of CPUs with minimal compile-time 13 - options. 14 - cxl.txt 15 - - Overview of the CXL driver. 16 - eeh-pci-error-recovery.txt 17 - - info on PCI Bus EEH Error Recovery 18 - firmware-assisted-dump.txt 19 - - Documentation on the firmware assisted dump mechanism "fadump". 20 - hvcs.txt 21 - - IBM "Hypervisor Virtual Console Server" Installation Guide 22 - mpc52xx.txt 23 - - Linux 2.6.x on MPC52xx family 24 - pmu-ebb.txt 25 - - Description of the API for using the PMU with Event Based Branches. 26 - qe_firmware.txt 27 - - describes the layout of firmware binaries for the Freescale QUICC 28 - Engine and the code that parses and uploads the microcode therein. 29 - ptrace.txt 30 - - Information on the ptrace interfaces for hardware debug registers. 31 - transactional_memory.txt 32 - - Overview of the Power8 transactional memory support. 33 - dscr.txt 34 - - Overview DSCR (Data Stream Control Register) support.
+6 -6
Documentation/preempt-locking.txt
··· 3 3 =========================================================================== 4 4 5 5 :Author: Robert Love <rml@tech9.net> 6 - :Last Updated: 28 Aug 2002 7 6 8 7 9 8 Introduction ··· 91 92 in those cases. 92 93 93 94 But keep in mind that 'irqs disabled' is a fundamentally unsafe way of 94 - disabling preemption - any spin_unlock() decreasing the preemption count 95 - to 0 might trigger a reschedule. A simple printk() might trigger a reschedule. 96 - So use this implicit preemption-disabling property only if you know that the 97 - affected codepath does not do any of this. Best policy is to use this only for 98 - small, atomic code that you wrote and which calls no complex functions. 95 + disabling preemption - any cond_resched() or cond_resched_lock() might trigger 96 + a reschedule if the preempt count is 0. A simple printk() might trigger a 97 + reschedule. So use this implicit preemption-disabling property only if you 98 + know that the affected codepath does not do any of this. Best policy is to use 99 + this only for small, atomic code that you wrote and which calls no complex 100 + functions. 99 101 100 102 Example:: 101 103
+1 -1
Documentation/process/2.Process.rst
··· 82 82 March 11 4.16-rc5 83 83 March 18 4.16-rc6 84 84 March 25 4.16-rc7 85 - April 1 4.17 stable release 85 + April 1 4.16 stable release 86 86 ============== =============================== 87 87 88 88 How do the developers decide when to close the development cycle and create
+1 -1
Documentation/process/adding-syscalls.rst
··· 232 232 by the option. 233 233 - Make the option depend on EXPERT if it should be hidden from normal users. 234 234 - Make any new source files implementing the function dependent on the CONFIG 235 - option in the Makefile (e.g. ``obj-$(CONFIG_XYZZY_SYSCALL) += xyzzy.c``). 235 + option in the Makefile (e.g. ``obj-$(CONFIG_XYZZY_SYSCALL) += xyzzy.o``). 236 236 - Double check that the kernel still builds with the new CONFIG option turned 237 237 off. 238 238
+119
Documentation/process/deprecated.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + 3 + ===================================================================== 4 + Deprecated Interfaces, Language Features, Attributes, and Conventions 5 + ===================================================================== 6 + 7 + In a perfect world, it would be possible to convert all instances of 8 + some deprecated API into the new API and entirely remove the old API in 9 + a single development cycle. However, due to the size of the kernel, the 10 + maintainership hierarchy, and timing, it's not always feasible to do these 11 + kinds of conversions at once. This means that new instances may sneak into 12 + the kernel while old ones are being removed, only making the amount of 13 + work to remove the API grow. In order to educate developers about what 14 + has been deprecated and why, this list has been created as a place to 15 + point when uses of deprecated things are proposed for inclusion in the 16 + kernel. 17 + 18 + __deprecated 19 + ------------ 20 + While this attribute does visually mark an interface as deprecated, 21 + it `does not produce warnings during builds any more 22 + <https://git.kernel.org/linus/771c035372a036f83353eef46dbb829780330234>`_ 23 + because one of the standing goals of the kernel is to build without 24 + warnings and no one was actually doing anything to remove these deprecated 25 + interfaces. While using `__deprecated` is nice to note an old API in 26 + a header file, it isn't the full solution. Such interfaces must either 27 + be fully removed from the kernel, or added to this file to discourage 28 + others from using them in the future. 29 + 30 + open-coded arithmetic in allocator arguments 31 + -------------------------------------------- 32 + Dynamic size calculations (especially multiplication) should not be 33 + performed in memory allocator (or similar) function arguments due to the 34 + risk of them overflowing. This could lead to values wrapping around and a 35 + smaller allocation being made than the caller was expecting. Using those 36 + allocations could lead to linear overflows of heap memory and other 37 + misbehaviors. (One exception to this is literal values where the compiler 38 + can warn if they might overflow. Though using literals for arguments as 39 + suggested below is also harmless.) 40 + 41 + For example, do not use ``count * size`` as an argument, as in:: 42 + 43 + foo = kmalloc(count * size, GFP_KERNEL); 44 + 45 + Instead, the 2-factor form of the allocator should be used:: 46 + 47 + foo = kmalloc_array(count, size, GFP_KERNEL); 48 + 49 + If no 2-factor form is available, the saturate-on-overflow helpers should 50 + be used:: 51 + 52 + bar = vmalloc(array_size(count, size)); 53 + 54 + Another common case to avoid is calculating the size of a structure with 55 + a trailing array of others structures, as in:: 56 + 57 + header = kzalloc(sizeof(*header) + count * sizeof(*header->item), 58 + GFP_KERNEL); 59 + 60 + Instead, use the helper:: 61 + 62 + header = kzalloc(struct_size(header, item, count), GFP_KERNEL); 63 + 64 + See :c:func:`array_size`, :c:func:`array3_size`, and :c:func:`struct_size`, 65 + for more details as well as the related :c:func:`check_add_overflow` and 66 + :c:func:`check_mul_overflow` family of functions. 67 + 68 + simple_strtol(), simple_strtoll(), simple_strtoul(), simple_strtoull() 69 + ---------------------------------------------------------------------- 70 + The :c:func:`simple_strtol`, :c:func:`simple_strtoll`, 71 + :c:func:`simple_strtoul`, and :c:func:`simple_strtoull` functions 72 + explicitly ignore overflows, which may lead to unexpected results 73 + in callers. The respective :c:func:`kstrtol`, :c:func:`kstrtoll`, 74 + :c:func:`kstrtoul`, and :c:func:`kstrtoull` functions tend to be the 75 + correct replacements, though note that those require the string to be 76 + NUL or newline terminated. 77 + 78 + strcpy() 79 + -------- 80 + :c:func:`strcpy` performs no bounds checking on the destination 81 + buffer. This could result in linear overflows beyond the 82 + end of the buffer, leading to all kinds of misbehaviors. While 83 + `CONFIG_FORTIFY_SOURCE=y` and various compiler flags help reduce the 84 + risk of using this function, there is no good reason to add new uses of 85 + this function. The safe replacement is :c:func:`strscpy`. 86 + 87 + strncpy() on NUL-terminated strings 88 + ----------------------------------- 89 + Use of :c:func:`strncpy` does not guarantee that the destination buffer 90 + will be NUL terminated. This can lead to various linear read overflows 91 + and other misbehavior due to the missing termination. It also NUL-pads the 92 + destination buffer if the source contents are shorter than the destination 93 + buffer size, which may be a needless performance penalty for callers using 94 + only NUL-terminated strings. The safe replacement is :c:func:`strscpy`. 95 + (Users of :c:func:`strscpy` still needing NUL-padding will need an 96 + explicit :c:func:`memset` added.) 97 + 98 + If a caller is using non-NUL-terminated strings, :c:func:`strncpy()` can 99 + still be used, but destinations should be marked with the `__nonstring 100 + <https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html>`_ 101 + attribute to avoid future compiler warnings. 102 + 103 + strlcpy() 104 + --------- 105 + :c:func:`strlcpy` reads the entire source buffer first, possibly exceeding 106 + the given limit of bytes to copy. This is inefficient and can lead to 107 + linear read overflows if a source string is not NUL-terminated. The 108 + safe replacement is :c:func:`strscpy`. 109 + 110 + Variable Length Arrays (VLAs) 111 + ----------------------------- 112 + Using stack VLAs produces much worse machine code than statically 113 + sized stack arrays. While these non-trivial `performance issues 114 + <https://git.kernel.org/linus/02361bc77888>`_ are reason enough to 115 + eliminate VLAs, they are also a security risk. Dynamic growth of a stack 116 + array may exceed the remaining memory in the stack segment. This could 117 + lead to a crash, possible overwriting sensitive contents at the end of the 118 + stack (when built without `CONFIG_THREAD_INFO_IN_TASK=y`), or overwriting 119 + memory adjacent to the stack (when built without `CONFIG_VMAP_STACK=y`)
+7 -6
Documentation/process/howto.rst
··· 57 57 Legal Issues 58 58 ------------ 59 59 60 - The Linux kernel source code is released under the GPL. Please see the 61 - file, COPYING, in the main directory of the source tree, for details on 62 - the license. If you have further questions about the license, please 63 - contact a lawyer, and do not ask on the Linux kernel mailing list. The 64 - people on the mailing lists are not lawyers, and you should not rely on 65 - their statements on legal matters. 60 + The Linux kernel source code is released under the GPL. Please see the file 61 + COPYING in the main directory of the source tree. The Linux kernel licensing 62 + rules and how to use `SPDX <https://spdx.org/>`_ identifiers in source code are 63 + descibed in :ref:`Documentation/process/license-rules.rst <kernel_licensing>`. 64 + If you have further questions about the license, please contact a lawyer, and do 65 + not ask on the Linux kernel mailing list. The people on the mailing lists are 66 + not lawyers, and you should not rely on their statements on legal matters. 66 67 67 68 For common questions and answers about the GPL, please see: 68 69
+2
Documentation/process/index.rst
··· 19 19 .. toctree:: 20 20 :maxdepth: 1 21 21 22 + license-rules 22 23 howto 23 24 code-of-conduct 24 25 code-of-conduct-interpretation ··· 43 42 stable-kernel-rules 44 43 submit-checklist 45 44 kernel-docs 45 + deprecated 46 46 47 47 These are some overall technical guides that have been put here for now for 48 48 lack of a better place.
+2
Documentation/process/license-rules.rst
··· 1 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 + .. _kernel_licensing: 4 + 3 5 Linux kernel licensing rules 4 6 ============================ 5 7
-28
Documentation/s390/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - 3270.ChangeLog 4 - - ChangeLog for the UTS Global 3270-support patch (outdated). 5 - 3270.txt 6 - - how to use the IBM 3270 display system support. 7 - cds.txt 8 - - s390 common device support (common I/O layer). 9 - CommonIO 10 - - common I/O layer command line parameters, procfs and debugfs entries 11 - config3270.sh 12 - - example configuration for 3270 devices. 13 - DASD 14 - - information on the DASD disk device driver. 15 - Debugging390.txt 16 - - hints for debugging on s390 systems. 17 - driver-model.txt 18 - - information on s390 devices and the driver model. 19 - monreader.txt 20 - - information on accessing the z/VM monitor stream from Linux. 21 - qeth.txt 22 - - HiperSockets Bridge Port Support. 23 - s390dbf.txt 24 - - information on using the s390 debug feature. 25 - vfio-ccw.txt 26 - information on the vfio-ccw I/O subchannel driver. 27 - zfcpdump.txt 28 - - information on the s390 SCSI dump tool.
-18
Documentation/scheduler/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - sched-arch.txt 4 - - CPU Scheduler implementation hints for architecture specific code. 5 - sched-bwc.txt 6 - - CFS bandwidth control overview. 7 - sched-design-CFS.txt 8 - - goals, design and implementation of the Completely Fair Scheduler. 9 - sched-domains.txt 10 - - information on scheduling domains. 11 - sched-nice-design.txt 12 - - How and why the scheduler's nice levels are implemented. 13 - sched-rt-group.txt 14 - - real-time group scheduling. 15 - sched-deadline.txt 16 - - deadline scheduling. 17 - sched-stats.txt 18 - - information on schedstats (Linux Scheduler Statistics).
+2 -1
Documentation/scheduler/completion.txt
··· 267 267 probably are a design bug. 268 268 269 269 Signaling completion from IRQ context is fine as it will appropriately 270 - lock with spin_lock_irqsave()/spin_unlock_irqrestore() and it will never sleep. 270 + lock with spin_lock_irqsave()/spin_unlock_irqrestore() and it will never 271 + sleep. 271 272 272 273 273 274 try_wait_for_completion()/completion_done():
-108
Documentation/scsi/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - 53c700.txt 4 - - info on driver for 53c700 based adapters 5 - BusLogic.txt 6 - - info on driver for adapters with BusLogic chips 7 - ChangeLog.1992-1997 8 - - Changes to scsi files, if not listed elsewhere 9 - ChangeLog.arcmsr 10 - - Changes to driver for ARECA's SATA RAID controller cards 11 - ChangeLog.ips 12 - - IBM ServeRAID driver Changelog 13 - ChangeLog.lpfc 14 - - Changes to lpfc driver 15 - ChangeLog.megaraid 16 - - Changes to LSI megaraid controller. 17 - ChangeLog.megaraid_sas 18 - - Changes to serial attached scsi version of LSI megaraid controller. 19 - ChangeLog.ncr53c8xx 20 - - Changes to ncr53c8xx driver 21 - ChangeLog.sym53c8xx 22 - - Changes to sym53c8xx driver 23 - ChangeLog.sym53c8xx_2 24 - - Changes to second generation of sym53c8xx driver 25 - FlashPoint.txt 26 - - info on driver for BusLogic FlashPoint adapters 27 - LICENSE.FlashPoint 28 - - Licence of the Flashpoint driver 29 - LICENSE.qla2xxx 30 - - License for QLogic Linux Fibre Channel HBA Driver firmware. 31 - LICENSE.qla4xxx 32 - - License for QLogic Linux iSCSI HBA Driver. 33 - Mylex.txt 34 - - info on driver for Mylex adapters 35 - NinjaSCSI.txt 36 - - info on WorkBiT NinjaSCSI-32/32Bi driver 37 - aacraid.txt 38 - - Driver supporting Adaptec RAID controllers 39 - advansys.txt 40 - - List of Advansys Host Adapters 41 - aha152x.txt 42 - - info on driver for Adaptec AHA152x based adapters 43 - aic79xx.txt 44 - - Adaptec Ultra320 SCSI host adapters 45 - aic7xxx.txt 46 - - info on driver for Adaptec controllers 47 - arcmsr_spec.txt 48 - - ARECA FIRMWARE SPEC (for IOP331 adapter) 49 - bfa.txt 50 - - Brocade FC/FCOE adapter driver. 51 - bnx2fc.txt 52 - - FCoE hardware offload for Broadcom network interfaces. 53 - cxgb3i.txt 54 - - Chelsio iSCSI Linux Driver 55 - dc395x.txt 56 - - README file for the dc395x SCSI driver 57 - dpti.txt 58 - - info on driver for DPT SmartRAID and Adaptec I2O RAID based adapters 59 - dtc3x80.txt 60 - - info on driver for DTC 2x80 based adapters 61 - g_NCR5380.txt 62 - - info on driver for NCR5380 and NCR53c400 based adapters 63 - hpsa.txt 64 - - HP Smart Array Controller SCSI driver. 65 - hptiop.txt 66 - - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER 67 - libsas.txt 68 - - Serial Attached SCSI management layer. 69 - link_power_management_policy.txt 70 - - Link power management options. 71 - lpfc.txt 72 - - LPFC driver release notes 73 - megaraid.txt 74 - - Common Management Module, shared code handling ioctls for LSI drivers 75 - ncr53c8xx.txt 76 - - info on driver for NCR53c8xx based adapters 77 - osd.txt 78 - Object-Based Storage Device, command set introduction. 79 - osst.txt 80 - - info on driver for OnStream SC-x0 SCSI tape 81 - ppa.txt 82 - - info on driver for IOmega zip drive 83 - qlogicfas.txt 84 - - info on driver for QLogic FASxxx based adapters 85 - scsi-changer.txt 86 - - README for the SCSI media changer driver 87 - scsi-generic.txt 88 - - info on the sg driver for generic (non-disk/CD/tape) SCSI devices. 89 - scsi-parameters.txt 90 - - List of SCSI-parameters to pass to the kernel at module load-time. 91 - scsi.txt 92 - - short blurb on using SCSI support as a module. 93 - scsi_mid_low_api.txt 94 - - info on API between SCSI layer and low level drivers 95 - scsi_eh.txt 96 - - info on SCSI midlayer error handling infrastructure 97 - scsi_fc_transport.txt 98 - - SCSI Fiber Channel Tansport 99 - st.txt 100 - - info on scsi tape driver 101 - sym53c500_cs.txt 102 - - info on PCMCIA driver for Symbios Logic 53c500 based adapters 103 - sym53c8xx_2.txt 104 - - info on second generation driver for sym53c8xx based adapters 105 - tmscsim.txt 106 - - info on driver for AM53c974 based adapters 107 - ufs.txt 108 - - info on Universal Flash Storage(UFS) and UFS host controller driver.
+4 -4
Documentation/security/keys/ecryptfs.rst
··· 5 5 ECryptfs is a stacked filesystem which transparently encrypts and decrypts each 6 6 file using a randomly generated File Encryption Key (FEK). 7 7 8 - Each FEK is in turn encrypted with a File Encryption Key Encryption Key (FEFEK) 8 + Each FEK is in turn encrypted with a File Encryption Key Encryption Key (FEKEK) 9 9 either in kernel space or in user space with a daemon called 'ecryptfsd'. In 10 10 the former case the operation is performed directly by the kernel CryptoAPI 11 - using a key, the FEFEK, derived from a user prompted passphrase; in the latter 11 + using a key, the FEKEK, derived from a user prompted passphrase; in the latter 12 12 the FEK is encrypted by 'ecryptfsd' with the help of external libraries in order 13 13 to support other mechanisms like public key cryptography, PKCS#11 and TPM based 14 14 operations. ··· 22 22 The 'encrypted' key type has been extended with the introduction of the new 23 23 format 'ecryptfs' in order to be used in conjunction with the eCryptfs 24 24 filesystem. Encrypted keys of the newly introduced format store an 25 - authentication token in its payload with a FEFEK randomly generated by the 25 + authentication token in its payload with a FEKEK randomly generated by the 26 26 kernel and protected by the parent master key. 27 27 28 28 In order to avoid known-plaintext attacks, the datablob obtained through 29 29 commands 'keyctl print' or 'keyctl pipe' does not contain the overall 30 - authentication token, which content is well known, but only the FEFEK in 30 + authentication token, which content is well known, but only the FEKEK in 31 31 encrypted form. 32 32 33 33 The eCryptfs filesystem may really benefit from using encrypted keys in that the
-16
Documentation/serial/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - README.cycladesZ 4 - - info on Cyclades-Z firmware loading. 5 - driver 6 - - intro to the low level serial driver. 7 - moxa-smartio 8 - - file with info on installing/using Moxa multiport serial driver. 9 - n_gsm.txt 10 - - GSM 0710 tty multiplexer howto. 11 - rocket.txt 12 - - info on the Comtrol RocketPort multiport serial driver. 13 - serial-rs485.txt 14 - - info about RS485 structures and support in the kernel. 15 - tty.txt 16 - - guide to the locking policies of the tty layer.
+38
Documentation/sphinx-static/theme_overrides.css
··· 4 4 * 5 5 */ 6 6 7 + /* Improve contrast and increase size for easier reading. */ 8 + 9 + body { 10 + font-family: serif; 11 + color: black; 12 + font-size: 100%; 13 + } 14 + 15 + h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { 16 + font-family: sans-serif; 17 + } 18 + 19 + .wy-menu-vertical li.current a { 20 + color: #505050; 21 + } 22 + 23 + .wy-menu-vertical li.on a, .wy-menu-vertical li.current > a { 24 + color: #303030; 25 + } 26 + 27 + div[class^="highlight"] pre { 28 + font-family: monospace; 29 + color: black; 30 + font-size: 100%; 31 + } 32 + 33 + .wy-menu-vertical { 34 + font-family: sans-serif; 35 + } 36 + 37 + .c { 38 + font-style: normal; 39 + } 40 + 41 + p { 42 + font-size: 100%; 43 + } 44 + 7 45 /* Interim: Code-blocks with line nos - lines and line numbers don't line up. 8 46 * see: https://github.com/rtfd/sphinx_rtd_theme/issues/419 9 47 */
-16
Documentation/spi/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - butterfly 4 - - AVR Butterfly SPI driver overview and pin configuration. 5 - ep93xx_spi 6 - - Basic EP93xx SPI driver configuration. 7 - pxa2xx 8 - - PXA2xx SPI master controller build by spi_message fifo wq 9 - spidev 10 - - Intro to the userspace API for spi devices 11 - spi-lm70llp 12 - - Connecting an LM70-LLP sensor to the kernel via the SPI subsys. 13 - spi-sc18is602 14 - - NXP SC18IS602/603 I2C-bus to SPI bridge 15 - spi-summary 16 - - (Linux) SPI overview. If unsure about SPI or SPI in Linux, start here.
-16
Documentation/sysctl/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - README 4 - - general information about /proc/sys/ sysctl files. 5 - abi.txt 6 - - documentation for /proc/sys/abi/*. 7 - fs.txt 8 - - documentation for /proc/sys/fs/*. 9 - kernel.txt 10 - - documentation for /proc/sys/kernel/*. 11 - net.txt 12 - - documentation for /proc/sys/net/*. 13 - sunrpc.txt 14 - - documentation for /proc/sys/sunrpc/*. 15 - vm.txt 16 - - documentation for /proc/sys/vm/*.
-16
Documentation/timers/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - highres.txt 4 - - High resolution timers and dynamic ticks design notes 5 - hpet.txt 6 - - High Precision Event Timer Driver for Linux 7 - hrtimers.txt 8 - - subsystem for high-resolution kernel timers 9 - NO_HZ.txt 10 - - Summary of the different methods for the scheduler clock-interrupts management. 11 - timekeeping.txt 12 - - Clock sources, clock events, sched_clock() and delay timer notes 13 - timers-howto.txt 14 - - how to insert delays in the kernel the right (tm) way. 15 - timer_stats.txt 16 - - timer usage statistics
+3
Documentation/trace/ftrace.rst
··· 2987 2987 command, it only prints out the contents of the ring buffer for the 2988 2988 CPU that executed the function that triggered the dump. 2989 2989 2990 + - stacktrace: 2991 + When the function is hit, a stack trace is recorded. 2992 + 2990 2993 trace_pipe 2991 2994 ---------- 2992 2995
+3 -3
Documentation/trace/histogram.rst
··· 1765 1765 # echo 'hist:keys=pid,prio:ts0=common_timestamp ...' >> event1/trigger 1766 1766 # echo 'hist:keys=next_pid:wakeup_lat=common_timestamp-$ts0 ...' >> event2/trigger 1767 1767 1768 - In the first line above, the event's timetamp is saved into the 1768 + In the first line above, the event's timestamp is saved into the 1769 1769 variable ts0. In the next line, ts0 is subtracted from the second 1770 1770 event's timestamp to produce the latency, which is then assigned into 1771 1771 yet another variable, 'wakeup_lat'. The hist trigger below in turn ··· 1811 1811 /sys/kernel/debug/tracing/synthetic_events 1812 1812 1813 1813 At this point, there isn't yet an actual 'wakeup_latency' event 1814 - instantiated in the event subsytem - for this to happen, a 'hist 1814 + instantiated in the event subsystem - for this to happen, a 'hist 1815 1815 trigger action' needs to be instantiated and bound to actual fields 1816 1816 and variables defined on other events (see Section 2.2.3 below on 1817 1817 how that is done using hist trigger 'onmatch' action). Once that is ··· 1837 1837 A hist trigger 'action' is a function that's executed whenever a 1838 1838 histogram entry is added or updated. 1839 1839 1840 - The default 'action' if no special function is explicity specified is 1840 + The default 'action' if no special function is explicitly specified is 1841 1841 as it always has been, to simply update the set of values associated 1842 1842 with an entry. Some applications, however, may want to perform 1843 1843 additional actions at that point, such as generate another event, or
-11
Documentation/virtual/00-INDEX
··· 1 - Virtualization support in the Linux kernel. 2 - 3 - 00-INDEX 4 - - this file. 5 - 6 - paravirt_ops.txt 7 - - Describes the Linux kernel pv_ops to support different hypervisors 8 - kvm/ 9 - - Kernel Virtual Machine. See also http://linux-kvm.org 10 - uml/ 11 - - User Mode Linux, builds/runs Linux kernel as a userspace program.
-35
Documentation/virtual/kvm/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - amd-memory-encryption.rst 4 - - notes on AMD Secure Encrypted Virtualization feature and SEV firmware 5 - command description 6 - api.txt 7 - - KVM userspace API. 8 - arm 9 - - internal ABI between the kernel and HYP (for arm/arm64) 10 - cpuid.txt 11 - - KVM-specific cpuid leaves (x86). 12 - devices/ 13 - - KVM_CAP_DEVICE_CTRL userspace API. 14 - halt-polling.txt 15 - - notes on halt-polling 16 - hypercalls.txt 17 - - KVM hypercalls. 18 - locking.txt 19 - - notes on KVM locks. 20 - mmu.txt 21 - - the x86 kvm shadow mmu. 22 - msr.txt 23 - - KVM-specific MSRs (x86). 24 - nested-vmx.txt 25 - - notes on nested virtualization for Intel x86 processors. 26 - ppc-pv.txt 27 - - the paravirtualization interface on PowerPC. 28 - review-checklist.txt 29 - - review checklist for KVM patches. 30 - s390-diag.txt 31 - - Diagnose hypercall description (for IBM S/390) 32 - timekeeping.txt 33 - - timekeeping virtualization for x86-based architectures. 34 - vcpu-requests.rst 35 - - internal VCPU request API
-50
Documentation/vm/00-INDEX
··· 1 - 00-INDEX 2 - - this file. 3 - active_mm.rst 4 - - An explanation from Linus about tsk->active_mm vs tsk->mm. 5 - balance.rst 6 - - various information on memory balancing. 7 - cleancache.rst 8 - - Intro to cleancache and page-granularity victim cache. 9 - frontswap.rst 10 - - Outline frontswap, part of the transcendent memory frontend. 11 - highmem.rst 12 - - Outline of highmem and common issues. 13 - hmm.rst 14 - - Documentation of heterogeneous memory management 15 - hugetlbfs_reserv.rst 16 - - A brief overview of hugetlbfs reservation design/implementation. 17 - hwpoison.rst 18 - - explains what hwpoison is 19 - ksm.rst 20 - - how to use the Kernel Samepage Merging feature. 21 - mmu_notifier.rst 22 - - a note about clearing pte/pmd and mmu notifications 23 - numa.rst 24 - - information about NUMA specific code in the Linux vm. 25 - overcommit-accounting.rst 26 - - description of the Linux kernels overcommit handling modes. 27 - page_frags.rst 28 - - description of page fragments allocator 29 - page_migration.rst 30 - - description of page migration in NUMA systems. 31 - page_owner.rst 32 - - tracking about who allocated each page 33 - remap_file_pages.rst 34 - - a note about remap_file_pages() system call 35 - slub.rst 36 - - a short users guide for SLUB. 37 - split_page_table_lock.rst 38 - - Separate per-table lock to improve scalability of the old page_table_lock. 39 - swap_numa.rst 40 - - automatic binding of swap device to numa node 41 - transhuge.rst 42 - - Transparent Hugepage Support, alternative way of using hugepages. 43 - unevictable-lru.rst 44 - - Unevictable LRU infrastructure 45 - z3fold.txt 46 - - outline of z3fold allocator for storing compressed pages 47 - zsmalloc.rst 48 - - outline of zsmalloc allocator for storing compressed pages 49 - zswap.rst 50 - - Intro to compressed cache for swap pages
+7 -7
Documentation/vm/hmm.rst
··· 194 194 unsigned long start, 195 195 unsigned long end, 196 196 hmm_pfn_t *pfns); 197 - int hmm_vma_fault(struct vm_area_struct *vma, 198 - struct hmm_range *range, 199 - unsigned long start, 200 - unsigned long end, 201 - hmm_pfn_t *pfns, 202 - bool write, 203 - bool block); 197 + int hmm_vma_fault(struct vm_area_struct *vma, 198 + struct hmm_range *range, 199 + unsigned long start, 200 + unsigned long end, 201 + hmm_pfn_t *pfns, 202 + bool write, 203 + bool block); 204 204 205 205 The first one (hmm_vma_get_pfns()) will only fetch present CPU page table 206 206 entries and will not trigger a page fault on missing or non-present entries.
-10
Documentation/w1/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - slaves/ 4 - - Drivers that provide support for specific family codes. 5 - masters/ 6 - - Individual chips providing 1-wire busses. 7 - w1.generic 8 - - The 1-wire (w1) bus 9 - w1.netlink 10 - - Userspace communication protocol over connector [1].
-12
Documentation/w1/masters/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - ds2482 4 - - The Maxim/Dallas Semiconductor DS2482 provides 1-wire busses. 5 - ds2490 6 - - The Maxim/Dallas Semiconductor DS2490 builds USB <-> W1 bridges. 7 - mxc-w1 8 - - W1 master controller driver found on Freescale MX2/MX3 SoCs 9 - omap-hdq 10 - - HDQ/1-wire module of TI OMAP 2430/3430. 11 - w1-gpio 12 - - GPIO 1-wire bus master driver.
-14
Documentation/w1/slaves/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - w1_therm 4 - - The Maxim/Dallas Semiconductor ds18*20 temperature sensor. 5 - w1_ds2413 6 - - The Maxim/Dallas Semiconductor ds2413 dual channel addressable switch. 7 - w1_ds2423 8 - - The Maxim/Dallas Semiconductor ds2423 counter device. 9 - w1_ds2438 10 - - The Maxim/Dallas Semiconductor ds2438 smart battery monitor. 11 - w1_ds28e04 12 - - The Maxim/Dallas Semiconductor ds28e04 eeprom. 13 - w1_ds28e17 14 - - The Maxim/Dallas Semiconductor ds28e17 1-Wire-to-I2C Master Bridge.
-20
Documentation/x86/00-INDEX
··· 1 - 00-INDEX 2 - - this file 3 - boot.txt 4 - - List of boot protocol versions 5 - earlyprintk.txt 6 - - Using earlyprintk with a USB2 debug port key. 7 - entry_64.txt 8 - - Describe (some of the) kernel entry points for x86. 9 - exception-tables.txt 10 - - why and how Linux kernel uses exception tables on x86 11 - microcode.txt 12 - - How to load microcode from an initrd-CPIO archive early to fix CPU issues. 13 - mtrr.txt 14 - - how to use x86 Memory Type Range Registers to increase performance 15 - pat.txt 16 - - Page Attribute Table intro and API 17 - usb-legacy-support.txt 18 - - how to fix/avoid quirks when using emulated PS/2 mouse/keyboard. 19 - zero-page.txt 20 - - layout of the first page of memory.
-16
Documentation/x86/x86_64/00-INDEX
··· 1 - 00-INDEX 2 - - This file 3 - boot-options.txt 4 - - AMD64-specific boot options. 5 - cpu-hotplug-spec 6 - - Firmware support for CPU hotplug under Linux/x86-64 7 - fake-numa-for-cpusets 8 - - Using numa=fake and CPUSets for Resource Management 9 - kernel-stacks 10 - - Context-specific per-processor interrupt stacks. 11 - machinecheck 12 - - Configurable sysfs parameters for the x86-64 machine check code. 13 - mm.txt 14 - - Memory layout of x86-64 (4 level page tables, 46 bits physical). 15 - uefi.txt 16 - - Booting Linux via Unified Extensible Firmware Interface.
+5 -1
LICENSES/other/CDDL-1.0
··· 1 1 Valid-License-Identifier: CDDL-1.0 2 2 SPDX-URL: https://spdx.org/licenses/CDDL-1.0.html 3 3 Usage-Guide: 4 + Do NOT use. The CDDL-1.0 is not GPL compatible. It may only be used for 5 + dual-licensed files where the other license is GPL compatible. 6 + If you end up using this it MUST be used together with a GPL2 compatible 7 + license using "OR". 4 8 To use the Common Development and Distribution License 1.0 put the 5 9 following SPDX tag/value pair into a comment according to the placement 6 10 guidelines in the licensing rules documentation: 7 - SPDX-License-Identifier: CDDL-1.0 11 + SPDX-License-Identifier: ($GPL-COMPATIBLE-ID OR CDDL-1.0) 8 12 9 13 License-Text: 10 14
+24
LICENSES/other/ISC
··· 1 + Valid-License-Identifier: ISC 2 + SPDX-URL: https://spdx.org/licenses/ISC.html 3 + Usage-Guide: 4 + To use the ISC License put the following SPDX tag/value pair into a 5 + comment according to the placement guidelines in the licensing rules 6 + documentation: 7 + SPDX-License-Identifier: ISC 8 + License-Text: 9 + 10 + ISC License 11 + 12 + Copyright (c) <year> <copyright holders> 13 + 14 + Permission to use, copy, modify, and/or distribute this software for any 15 + purpose with or without fee is hereby granted, provided that the above 16 + copyright notice and this permission notice appear in all copies. 17 + 18 + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 19 + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 20 + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 21 + SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 22 + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 23 + OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 24 + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+7 -6
MAINTAINERS
··· 839 839 M: Mircea Caprioru <mircea.caprioru@analog.com> 840 840 S: Supported 841 841 F: drivers/mux/adgs1408.c 842 - F: Documentation/devicetree/bindings/mux/adgs1408.txt 842 + F: Documentation/devicetree/bindings/mux/adi,adgs1408.txt 843 843 844 844 ANALOG DEVICES INC ADP5061 DRIVER 845 845 M: Stefan Popa <stefan.popa@analog.com> ··· 4514 4514 F: Documentation/ 4515 4515 F: scripts/kernel-doc 4516 4516 X: Documentation/ABI/ 4517 + X: Documentation/acpi/ 4517 4518 X: Documentation/devicetree/ 4518 - X: Documentation/acpi 4519 - X: Documentation/power 4520 - X: Documentation/spi 4521 - X: Documentation/media 4519 + X: Documentation/i2c/ 4520 + X: Documentation/media/ 4521 + X: Documentation/power/ 4522 + X: Documentation/spi/ 4522 4523 T: git git://git.lwn.net/linux.git docs-next 4523 4524 4524 4525 DOCUMENTATION/ITALIAN ··· 5549 5548 Q: http://patchwork.ozlabs.org/project/linux-ext4/list/ 5550 5549 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git 5551 5550 S: Maintained 5552 - F: Documentation/filesystems/ext4.txt 5551 + F: Documentation/filesystems/ext4/ext4.rst 5553 5552 F: fs/ext4/ 5554 5553 5555 5554 Extended Verification Module (EVM)
-1
README
··· 12 12 13 13 There are various text files in the Documentation/ subdirectory, 14 14 several of them using the Restructured Text markup notation. 15 - See Documentation/00-INDEX for a list of what is contained in each file. 16 15 17 16 Please read the Documentation/process/changes.rst file, as it contains the 18 17 requirements for building and running the kernel, and information about
+7
drivers/firewire/core-iso.c
··· 337 337 338 338 /** 339 339 * fw_iso_resource_manage() - Allocate or deallocate a channel and/or bandwidth 340 + * @card: card interface for this action 341 + * @generation: bus generation 342 + * @channels_mask: bitmask for channel allocation 343 + * @channel: pointer for returning channel allocation result 344 + * @bandwidth: pointer for returning bandwidth allocation result 345 + * @allocate: whether to allocate (true) or deallocate (false) 340 346 * 341 347 * In parameters: card, generation, channels_mask, bandwidth, allocate 342 348 * Out parameters: channel, bandwidth 349 + * 343 350 * This function blocks (sleeps) during communication with the IRM. 344 351 * 345 352 * Allocates or deallocates at most one channel out of channels_mask.
+10
drivers/firewire/core-transaction.c
··· 410 410 411 411 /** 412 412 * fw_run_transaction() - send request and sleep until transaction is completed 413 + * @card: card interface for this request 414 + * @tcode: transaction code 415 + * @destination_id: destination node ID, consisting of bus_ID and phy_ID 416 + * @generation: bus generation in which request and response are valid 417 + * @speed: transmission speed 418 + * @offset: 48bit wide offset into destination's address space 419 + * @payload: data payload for the request subaction 420 + * @length: length of the payload, in bytes 413 421 * 414 422 * Returns the RCODE. See fw_send_request() for parameter documentation. 415 423 * Unlike fw_send_request(), @data points to the payload of the request or/and ··· 612 604 613 605 /** 614 606 * fw_core_remove_address_handler() - unregister an address handler 607 + * @handler: callback 615 608 * 616 609 * To be called in process context. 617 610 * ··· 837 828 838 829 /** 839 830 * fw_get_request_speed() - returns speed at which the @request was received 831 + * @request: firewire request data 840 832 */ 841 833 int fw_get_request_speed(struct fw_request *request) 842 834 {
+14 -8
include/uapi/linux/firewire-cdev.h
··· 47 47 #define FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL 0x09 48 48 49 49 /** 50 - * struct fw_cdev_event_common - Common part of all fw_cdev_event_ types 50 + * struct fw_cdev_event_common - Common part of all fw_cdev_event_* types 51 51 * @closure: For arbitrary use by userspace 52 - * @type: Discriminates the fw_cdev_event_ types 52 + * @type: Discriminates the fw_cdev_event_* types 53 53 * 54 - * This struct may be used to access generic members of all fw_cdev_event_ 54 + * This struct may be used to access generic members of all fw_cdev_event_* 55 55 * types regardless of the specific type. 56 56 * 57 57 * Data passed in the @closure field for a request will be returned in the ··· 123 123 124 124 /** 125 125 * struct fw_cdev_event_request - Old version of &fw_cdev_event_request2 126 + * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_ALLOCATE ioctl 126 127 * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_REQUEST 128 + * @tcode: Transaction code of the incoming request 129 + * @offset: The offset into the 48-bit per-node address space 130 + * @handle: Reference to the kernel-side pending request 131 + * @length: Data length, i.e. the request's payload size in bytes 132 + * @data: Incoming data, if any 127 133 * 128 134 * This event is sent instead of &fw_cdev_event_request2 if the kernel or 129 135 * the client implements ABI version <= 3. &fw_cdev_event_request lacks ··· 359 353 }; 360 354 361 355 /** 362 - * union fw_cdev_event - Convenience union of fw_cdev_event_ types 356 + * union fw_cdev_event - Convenience union of fw_cdev_event_* types 363 357 * @common: Valid for all types 364 358 * @bus_reset: Valid if @common.type == %FW_CDEV_EVENT_BUS_RESET 365 359 * @response: Valid if @common.type == %FW_CDEV_EVENT_RESPONSE ··· 741 735 * @header: Header and payload in case of a transmit context. 742 736 * 743 737 * &struct fw_cdev_iso_packet is used to describe isochronous packet queues. 744 - * Use the FW_CDEV_ISO_ macros to fill in @control. 738 + * Use the FW_CDEV_ISO_* macros to fill in @control. 745 739 * The @header array is empty in case of receive contexts. 746 740 * 747 741 * Context type %FW_CDEV_ISO_CONTEXT_TRANSMIT: ··· 848 842 * the %FW_CDEV_ISO_SYNC bit set 849 843 * @tags: Tag filter bit mask. Only valid for isochronous reception. 850 844 * Determines the tag values for which packets will be accepted. 851 - * Use FW_CDEV_ISO_CONTEXT_MATCH_ macros to set @tags. 845 + * Use FW_CDEV_ISO_CONTEXT_MATCH_* macros to set @tags. 852 846 * @handle: Isochronous context handle within which to transmit or receive 853 847 */ 854 848 struct fw_cdev_start_iso { ··· 1015 1009 * on the same card as this device. After transmission, an 1016 1010 * %FW_CDEV_EVENT_PHY_PACKET_SENT event is generated. 1017 1011 * 1018 - * The payload @data[] shall be specified in host byte order. Usually, 1019 - * @data[1] needs to be the bitwise inverse of @data[0]. VersaPHY packets 1012 + * The payload @data\[\] shall be specified in host byte order. Usually, 1013 + * @data\[1\] needs to be the bitwise inverse of @data\[0\]. VersaPHY packets 1020 1014 * are an exception to this rule. 1021 1015 * 1022 1016 * The ioctl is only permitted on device files which represent a local node.
+9 -11
lib/vsprintf.c
··· 1833 1833 * p page flags (see struct page) given as pointer to unsigned long 1834 1834 * g gfp flags (GFP_* and __GFP_*) given as pointer to gfp_t 1835 1835 * v vma flags (VM_*) given as pointer to unsigned long 1836 - * - 'O' For a kobject based struct. Must be one of the following: 1837 - * - 'OF[fnpPcCF]' For a device tree object 1838 - * Without any optional arguments prints the full_name 1839 - * f device node full_name 1840 - * n device node name 1841 - * p device node phandle 1842 - * P device node path spec (name + @unit) 1843 - * F device node flags 1844 - * c major compatible string 1845 - * C full compatible string 1846 - * 1836 + * - 'OF[fnpPcCF]' For a device tree object 1837 + * Without any optional arguments prints the full_name 1838 + * f device node full_name 1839 + * n device node name 1840 + * p device node phandle 1841 + * P device node path spec (name + @unit) 1842 + * F device node flags 1843 + * c major compatible string 1844 + * C full compatible string 1847 1845 * - 'x' For printing the address. Equivalent to "%lx". 1848 1846 * 1849 1847 * ** When making changes please also update:
+1 -1
net/bridge/Kconfig
··· 17 17 other third party bridge products. 18 18 19 19 In order to use the Ethernet bridge, you'll need the bridge 20 - configuration tools; see <file:Documentation/networking/bridge.txt> 20 + configuration tools; see <file:Documentation/networking/bridge.rst> 21 21 for location. Please read the Bridge mini-HOWTO for more 22 22 information. 23 23
-67
scripts/check_00index.sh
··· 1 - #!/bin/bash 2 - # SPDX-License-Identifier: GPL-2.0 3 - 4 - cd Documentation/ 5 - 6 - # Check entries that should be removed 7 - 8 - obsolete="" 9 - for i in $(tail -n +12 00-INDEX |grep -E '^[a-zA-Z0-9]+'); do 10 - if [ ! -e $i ]; then 11 - obsolete="$obsolete $i" 12 - fi 13 - done 14 - 15 - # Check directory entries that should be added 16 - search="" 17 - dir="" 18 - for i in $(find . -maxdepth 1 -type d); do 19 - if [ "$i" != "." ]; then 20 - new=$(echo $i|perl -ne 's,./(.*),$1/,; print $_') 21 - search="$search $new" 22 - fi 23 - done 24 - 25 - for i in $search; do 26 - if [ "$(grep -P "^$i" 00-INDEX)" == "" ]; then 27 - dir="$dir $i" 28 - fi 29 - done 30 - 31 - # Check file entries that should be added 32 - search="" 33 - file="" 34 - for i in $(find . -maxdepth 1 -type f); do 35 - if [ "$i" != "./.gitignore" ]; then 36 - new=$(echo $i|perl -ne 's,./(.*),$1,; print $_') 37 - search="$search $new" 38 - fi 39 - done 40 - 41 - for i in $search; do 42 - if [ "$(grep -P "^$i\$" 00-INDEX)" == "" ]; then 43 - file="$file $i" 44 - fi 45 - done 46 - 47 - # Output its findings 48 - 49 - echo -e "Documentation/00-INDEX check results:\n" 50 - 51 - if [ "$obsolete" != "" ]; then 52 - echo -e "- Should remove those entries:\n\t$obsolete\n" 53 - else 54 - echo -e "- No obsolete entries\n" 55 - fi 56 - 57 - if [ "$dir" != "" ]; then 58 - echo -e "- Should document those directories:\n\t$dir\n" 59 - else 60 - echo -e "- No new directories to add\n" 61 - fi 62 - 63 - if [ "$file" != "" ]; then 64 - echo -e "- Should document those files:\n\t$file" 65 - else 66 - echo "- No new files to add" 67 - fi
+4 -4
scripts/kernel-doc
··· 1904 1904 ++$warnings; 1905 1905 } 1906 1906 1907 - if ($identifier =~ m/^struct/) { 1907 + if ($identifier =~ m/^struct\b/) { 1908 1908 $decl_type = 'struct'; 1909 - } elsif ($identifier =~ m/^union/) { 1909 + } elsif ($identifier =~ m/^union\b/) { 1910 1910 $decl_type = 'union'; 1911 - } elsif ($identifier =~ m/^enum/) { 1911 + } elsif ($identifier =~ m/^enum\b/) { 1912 1912 $decl_type = 'enum'; 1913 - } elsif ($identifier =~ m/^typedef/) { 1913 + } elsif ($identifier =~ m/^typedef\b/) { 1914 1914 $decl_type = 'typedef'; 1915 1915 } else { 1916 1916 $decl_type = 'function';