| /Documentation/process/ | 
| D | management-style.rst | 14 to do with reality.  It started as a lark, but that doesn't mean that it 27   making it painfully obvious to the questioner that we don't have a clue 37 Everybody thinks managers make decisions, and that decision-making is 39 manager must be to make it.  That's very deep and obvious, but it's not 47 competent to make that decision for them. 51 Namely that you are in the wrong job, and that **they** should be managing 60 It helps to realize that the key difference between a big decision and a 62 can be made small by just always making sure that if you were wrong (and 67 And people will even see that as true leadership (*cough* bullshit 71 things that can't be undone.  Don't get ushered into a corner from which [all …] 
 | 
| D | 6.Followthrough.rst | 8 patches.  One of the biggest mistakes that even experienced kernel 9 developers can make is to conclude that their work is now done.  In truth, 13 It is a rare patch which is so good at its first posting that there is no 16 code.  You, as the author of that code, will be expected to work with the 17 kernel community to ensure that your code is up to the kernel's quality 32    value and why you went to the trouble of writing it.  But that value 36    to substantial rewrites - come from the understanding that Linux will 49    be working on the kernel years from now, but they understand that their 57    the same. Sometimes this means that the clever hack in your driver 61 What all of this comes down to is that, when reviewers send you comments, [all …] 
 | 
| D | stable-api-nonsense.rst | 15   Please realize that this article describes the **in kernel** interfaces, not 18   The kernel to userspace interface is the one that application programs use, 19   the syscall interface.  That interface is **very** stable over time, and 20   will not break.  I have old programs that were built on a pre 0.9something 21   kernel that still work just fine on the latest 2.6 kernel release. 22   That interface is the one that users and application programmers can count 30 you get that only if your driver is in the main kernel tree.  You also 40 It's only the odd person who wants to write a kernel driver that needs 47 that describes kernel drivers that do not have their source code 60 Assuming that we had a stable kernel source interface for the kernel, a [all …] 
 | 
| /Documentation/filesystems/ | 
| D | directory-locking.rst | 12 that "inode pointer" order in the following. 37 	* check that the source is not a directory 40 5. rename that is _not_ cross-directory.  Locking rules: 47 	* take the locks that need to be taken (exclusive), in inode pointer order 48 	  if need to take both (that can happen only when both source and target 51 	  allowed only with RENAME_EXCHANGE, and that won't be removing the target). 60 	* verify that the source is not a descendent of the target and 65 The rules above obviously guarantee that all directories that are going 78 that's not a problem, but there is a nasty twist - what should we do 79 when one growing tree reaches the root of another?  That can happen in [all …] 
 | 
| D | path-lookup.rst | 22 exploration is needed to discover, is that it is complex.  There are 23 many rules, special cases, and implementation alternatives that all 26 tool that we will make extensive use of is "divide and conquer".  For 41 of elements: "slashes" that are sequences of one or more "``/``" 42 characters, and "components" that are sequences of one or more 43 non-"``/``" characters.  These form two kinds of paths.  Those that 52 component, but that isn't always accurate: a pathname can lack both 62 it must identify a directory that already exists, otherwise an error 68 pathname that is just slashes have a final component.  If it does 75 tempting to consider that to have an empty final component.  In many [all …] 
 | 
| /Documentation/maintainer/ | 
| D | rebasing-and-merging.rst | 12 those tools incorrectly, but avoiding problems is not actually all that 15 One thing to be aware of in general is that, unlike many other projects, 26 within a repository.  There are two different types of operations that are 43 history; used improperly, it can obscure that history and introduce bugs. 45 There are a few rules of thumb that can help developers to avoid the worst 48  - History that has been exposed to the world beyond your private system 51    work is in need of rebasing, that is usually a sign that it is not yet 54    That said, there are always exceptions.  Some trees (linux-next being 58    testing services.  If you do expose a branch that may be unstable in 59    this way, be sure that prospective users know not to base work on it. [all …] 
 | 
| /Documentation/filesystems/xfs/ | 
| D | xfs-delayed-logging-design.rst | 10 This document describes the design and algorithms that the XFS journalling 11 subsystem is based on. This document describes the design and algorithms that 12 the XFS journalling subsystem is based on so that readers may familiarize 36 chained together by intents, ensuring that journal recovery can restart and 37 finish an operation that was only partially done when the system stopped 47 particularly important in the scope of this document. It suffices to know that 50 performed. The logging subsystem only cares that certain specific rules are 59 transactions. Permanent transaction reservations can take reservations that span 64 place.  This means that permanent transactions can be used for one-shot 79 space that was taken at the transaction allocation time. [all …] 
 | 
| /Documentation/core-api/ | 
| D | dma-attributes.rst | 5 This document describes the semantics of the DMA attributes that are 11 DMA_ATTR_WEAK_ORDERING specifies that reads and writes to the mapping 12 may be weakly ordered, that is that reads and writes may pass each other. 15 those that do not will simply ignore the attribute and exhibit default 21 DMA_ATTR_WRITE_COMBINE specifies that writes to the mapping may be 25 those that do not will simply ignore the attribute and exhibit default 37 that you won't dereference the pointer returned by dma_alloc_attr(). You 38 can treat it as a cookie that must be passed to dma_mmap_attrs() and 39 dma_free_attrs(). Make sure that both of these also get this attribute 43 DMA_ATTR_NO_KERNEL_MAPPING, those that do not will simply ignore the [all …] 
 | 
| /Documentation/userspace-api/media/v4l/ | 
| D | colorspaces.rst | 10 biology. Just because you have three numbers that describe the 'red', 11 'green' and 'blue' components of the color of a pixel does not mean that 12 you can accurately display that color. A colorspace defines what it 13 actually *means* to have an RGB value of e.g. (255, 0, 0). That is, 17 In order to do that we first need to have a good definition of color, 18 i.e. some way to uniquely and unambiguously define a color so that 20 the human eye has color receptors that are sensitive to three different 34 possible that different SPDs will result in the same stimulation of 39 between SPDs and the perceived color and that resulted in the CIE 1931 40 standard that defines spectral weighting functions that model the [all …] 
 | 
| /Documentation/driver-api/driver-model/ | 
| D | binding.rst | 6 driver that can control it. Bus drivers have typically handled this 15 The bus type structure contains a list of all devices that are on that bus 18 list of all drivers of that bus type. When driver_register is called 27 to find one that supports it. In order to determine that, the device 28 ID of the device must match one of the device IDs that the driver 39 chance to verify that it really does support the hardware, and that 47 class, and that is set in the driver's devclass field. 63 A symlink is created in the bus's 'devices' directory that points to 66 A symlink is created in the driver's 'devices' directory that points 70 symlink is created in that directory that points to the device's [all …] 
 | 
| /Documentation/mm/ | 
| D | active_mm.rst | 18  Cc'd to linux-kernel, because I don't write explanations all that often, 31     difference is that an anonymous address space doesn't care about the 36     The obvious use for a "anonymous address space" is any thread that 38     this category, but even "real" threads can temporarily say that for 40     and that the scheduler might as well try to avoid wasting time on 42     sync does that. 45     tsk->mm will be NULL, for the logical reason that an anonymous process 49     "stole" for such an anonymous user. For that, we have "tsk->active_mm", 52     The rule is that for a process with a real address space (ie tsk->mm is 61  To support all that, the "struct mm_struct" now has two counters: a [all …] 
 | 
| D | memory-model.rst | 10 however, that this range contains small holes that are not accessible 18 whether it is possible to manually override that default. 28 helpers that allow the conversion from PFN to `struct page` and vice 38 In the FLATMEM memory model, there is a global `mem_map` array that 45 usable until the call to :c:func:`memblock_free_all` that hands all the 48 An architecture may free parts of the `mem_map` array that do not cover the 64 is the only memory model that supports several advanced features such 71 that contains `section_mem_map` that is, logically, a pointer to an 73 that aids the sections management. The section size and maximal number 75 `MAX_PHYSMEM_BITS` constants defined by each architecture that [all …] 
 | 
| /Documentation/filesystems/nfs/ | 
| D | exporting.rst | 12 applications that access a filesystem via a remote filesystem protocol 35 tree.  This means that if any filesystem object is in the dcache, then 36 all of the ancestors of that filesystem object are also in the dcache. 44 the dcache that are not needed for normal filesystem access. 46 1. The dcache must sometimes contain objects that are not part of the 47    proper prefix. i.e that are not connected to the root. 50    that dentry into place (based on the parent and name in the 52    it is a dcache invariant that directories only have one dentry. 57    any dentry that might not be part of the proper prefix. 62    kept in the dcache.  If a dentry that is not already in the dcache [all …] 
 | 
| /Documentation/networking/devlink/ | 
| D | devlink-trap.rst | 21 kernel so that it will route it as well and generate an ICMP Time Exceeded 39 as it allows users to obtain further visibility into packet drops that would 123 Generic packet traps are used to describe traps that trap well-defined packets 124 or packets that are trapped due to well-defined conditions (e.g., TTL error). 136      - Traps incoming packets that the device decided to drop because of a 140      - Traps incoming packets that the device decided to drop in case of VLAN 145      - Traps incoming packets that the device decided to drop in case they are 146        tagged with a VLAN that is not configured on the ingress bridge port 149      - Traps incoming packets that the device decided to drop in case the STP 153      - Traps packets that the device decided to drop in case they need to be [all …] 
 | 
| /Documentation/power/ | 
| D | freezing-of-tasks.rst | 18 (TASK_FROZEN, TASK_FREEZABLE and __TASK_FREEZABLE_UNSAFE) used for that. 19 The tasks that have PF_NOFREEZE unset (all user space tasks and some kernel 30 try_to_freeze_tasks() that sends a fake signal to all user space processes, and 31 wakes up all the kernel threads. All freezable tasks must react to that by 34 it loop until it is woken by an explicit TASK_FROZEN wakeup. Then, that task 41 try_to_freeze() function (defined in include/linux/freezer.h), that checks 48 that put the task to sleep (TASK_INTERRUPTIBLE) or freeze it (TASK_FROZEN) if 79 order to wake up each frozen task.  Then, the tasks that have been frozen leave 112 IV. Why do we do that? 122    filesystem-related information that must be consistent with the state of the [all …] 
 | 
| D | s2ram.rst | 11 2) If that does not help, try reading tricks.txt and 21 always it's a driver that is buggy. Thank God for the suspend/resume 22 debugging - the thing that Chuck tried to disable. That's often the _only_ 25 driver that doesn't resume and recompile and reboot). 28 machine that doesn't boot) is: 49    which means that the last trace event was just before trying to resume 50    device 0000:01:00.0. Then figure out what driver is controlling that 55    the culprit may be a device from a loadable kernel module that is not loaded 63 that "radeonfb" simply cannot resume that device - it tries to set the 70 Reason for this is that the RTC is the only reliably available piece of [all …] 
 | 
| /Documentation/firmware-guide/acpi/ | 
| D | osi.rst | 10 can evaluate that method, look to see if it supports 'XYZ' 14 that OSPM supports" 22 Linux runs on two groups of machines -- those that are tested by the OEM 23 to be compatible with Linux, and those that were never tested with Linux, 26 The larger group is the systems tested to run only Windows.  Not only that, 30 Experience shows that taking untested paths through the BIOS 37 Windows to its list of _OSI strings.  So it is possible that additional strings 39 But it is likely that they will all eventually be added. 48 method (_DSM) that is called from the Linux kernel. 58 an evaluation of all of its uses. This uncovered that they aren't needed [all …] 
 | 
| /Documentation/filesystems/ext4/ | 
| D | allocators.rst | 6 ext4 recognizes (better than ext3, anyway) that data locality is 9 that the head actuator and disk must perform to access a data block, 17 The first tool that ext4 uses to combat fragmentation is the multi-block 20 that the space will get written soon. When the file is closed, the 24 extent. A second related trick that ext4 uses is delayed allocation. 30 is that the filesystem can make better location decisions. 32 The third trick that ext4 (and ext3) uses is that it tries to keep a 38 The fourth trick is that all the inodes in a directory are placed in the 40 here is that all the files in a directory might be related, therefore it 43 The fifth trick is that the disk volume is cut up into 128MB block [all …] 
 | 
| /Documentation/RCU/ | 
| D | checklist.rst | 9 that make use of RCU.  Violating any of the rules listed below will 10 result in the same sorts of problems that leaving out a locking primitive 17 	performance measurements show that RCU is nonetheless the right 36 	of lockless algorithms that garbage collectors do. 54 	relating to itself that other tasks can read, there by definition 55 	can be no bottleneck).	Note that the definition of "large" has 74 	Please note that you *cannot* rely on code known to be built 87 	any locks or atomic operations.  This means that readers will 94 		RCU-protected data structures that have been added to 100 		locks (that are acquired by both readers and writers) [all …] 
 | 
| /Documentation/driver-api/pm/ | 
| D | cpuidle.rst | 16 Every time one of the logical CPUs in the system (the entities that appear to 18 cores) is idle after an interrupt or equivalent wakeup event, which means that 20 with it, there is an opportunity to save energy for the processor that it 21 belongs to.  That can be done by making the idle logical CPU stop fetching 25 However, there may be multiple different idle states that can be used in such a 27 (from the kernel perspective) and ask the processor to use (or "enter") that 28 particular idle state.  That is the role of the CPU idle time management 32 principle, so the generic code that in principle need not depend on the hardware 33 or platform design details in it is separate from the code that interacts with 36 to enter, *drivers* that pass the governors' decisions on to the hardware and [all …] 
 | 
| /Documentation/i2c/ | 
| D | fault-codes.rst | 13 faults.  There may be fancier recovery schemes that are appropriate in 18 result for an operation ... it doesn't indicate that anything is wrong 19 at all, just that the outcome wasn't on the "golden path". 23 the right fault code, so that it can (in turn) behave correctly. 33 Note that the descriptions here are not exhaustive.  There are other 34 codes that may be returned, and other cases where these codes should 52 	atomic context, when some task is already using that I2C bus 61 	host.  Note that even if PECs are in use, you should not rely 68 	or that the reset was attempted but failed. 89 	Returned by any component that can't allocate memory when [all …] 
 | 
| /Documentation/admin-guide/pm/ | 
| D | cpuidle.rst | 33 CPU idle time management operates on CPUs as seen by the *CPU scheduler* (that 35 work in the system).  In its view, CPUs are *logical* units.  That is, they need 38 entity which appears to be fetching instructions that belong to one sequence 43 program) at a time, it is a CPU.  In that case, if the hardware is asked to 44 enter an idle state, that applies to the processor as a whole. 51 time.  The entire cores are CPUs in that case and if the hardware is asked to 52 enter an idle state, that applies to the core that asked for it in the first 54 that the core belongs to (in fact, it may apply to an entire hierarchy of larger 57 remaining core asks the processor to enter an idle state, that may trigger it 59 other cores in that unit. [all …] 
 | 
| /Documentation/locking/ | 
| D | rt-mutex-design.rst | 11 It doesn't describe the reasons why rtmutex.c exists. For that please see 13 that happen without this code, but that is in the concept to understand 17 inheritance (PI) algorithm that is used, as well as reasons for the 18 decisions that were made to implement PI in the manner that was done. 27 to use a resource that a lower priority process has (a mutex for example), 30 is something called unbounded priority inversion.  That is when the high 37 that C owns and must wait and lets C run to release the lock. But in the 71 inherited priority, and A then can continue with the resource that C had. 76 Here I explain some terminology that is used in this document to help describe 77 the design that is used to implement PI. [all …] 
 | 
| /Documentation/admin-guide/ | 
| D | reporting-issues.rst | 15 you don't find any, install `the latest release from that series 31 If it shows the problem, search for the change that fixed it in mainline and 47 Once the report is out, answer any questions that come up and help where you 48 can. That includes keeping the ball rolling by occasionally retesting with newer 55 developers. It might be all that's needed for people already familiar with 63 a slightly different order. That's in your interest, to make sure you notice 64 early if an issue that looks like a Linux kernel problem is actually caused by 80    issue, or a really severe problem: those are 'issues of high priority' that 81    need special handling in some steps that are about to follow. 83  * Make sure it's not the kernel's surroundings that are causing the issue [all …] 
 | 
| /Documentation/arch/arm/google/ | 
| D | chromebook-boot-flow.rst | 7 Most recent Chromebooks that use device tree are using the opensource 13 The scheme that depthcharge_ uses to pick the device tree takes into account 21 For recent Chromebooks, depthcharge_ creates a match list that looks like this: 28 Note that some older Chromebooks use a slightly different list that may 31 Note that for some boards there may be extra board-specific logic to inject 35 find one that matches the most specific compatible. It will then look 36 through all device trees in the `FIT Image`_ trying to find the one that 48 "google,lazor-rev4-sku0" was the second compatible listed in that device tree. 51 It should be noted that depthcharge_ does not have any smarts to try to 52 match board or SKU revisions that are "close by". That is to say that [all …] 
 |