| /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 54 What all of this comes down to is that, when reviewers send you comments, 55 you need to pay attention to the technical observations that they are [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/vm/ |
| D | active_mm.rst | 14 Cc'd to linux-kernel, because I don't write explanations all that often, 27 difference is that an anonymous address space doesn't care about the 32 The obvious use for a "anonymous address space" is any thread that 34 this category, but even "real" threads can temporarily say that for 36 and that the scheduler might as well try to avoid wasting time on 38 sync does that. 41 tsk->mm will be NULL, for the logical reason that an anonymous process 45 "stole" for such an anonymous user. For that, we have "tsk->active_mm", 48 The rule is that for a process with a real address space (ie tsk->mm is 57 To support all that, the "struct mm_struct" now has two counters: a [all …]
|
| D | memory-model.rst | 12 however, that this range contains small holes that are not accessible 20 whether it is possible to manually override that default. 34 helpers that allow the conversion from PFN to `struct page` and vice 44 In the FLATMEM memory model, there is a global `mem_map` array that 52 usable until the call to :c:func:`memblock_free_all` that hands all 56 it may free parts of the `mem_map` array that do not cover the 75 things, `pg_data_t` holds the `node_mem_map` array that maps 76 physical pages belonging to that node. The `node_start_pfn` field of 77 `pg_data_t` is the number of the first page frame belonging to that 88 node hosting that page. [all …]
|
| /Documentation/filesystems/ |
| D | directory-locking.rst | 12 that "inode pointer" order in the following. 25 4) rename() that is _not_ cross-directory. Locking rules: caller locks 37 * check that source is not a directory 61 The rules above obviously guarantee that all directories that are going to be 72 That ordering can change. However, the following is true: 102 blocked on source and it means that it doesn't hold any locks. 105 has a child that is also contended. Indeed, suppose that it is held by 107 is blocked on belongs to child of that object due to (1). 109 It means that one of the operations is cross-directory rename. 111 would have a contended child and we had assumed that no object is its [all …]
|
| D | path-lookup.rst | 21 exploration is needed to discover, is that it is complex. There are 22 many rules, special cases, and implementation alternatives that all 25 tool that we will make extensive use of is "divide and conquer". For 40 of elements: "slashes" that are sequences of one or more "``/``" 41 characters, and "components" that are sequences of one or more 42 non-"``/``" characters. These form two kinds of paths. Those that 51 component, but that isn't always accurate: a pathname can lack both 61 it must identify a directory that already exists, otherwise an error 67 pathname that is just slashes have a final component. If it does 74 tempting to consider that to have an empty final component. In many [all …]
|
| D | xfs-delayed-logging-design.txt | 12 required for objects that are frequently logged. Some parts of inodes are more 17 The reason that this is such a concern is that XFS allows multiple separate 21 "re-logging". Conceptually, this is quite simple - all it requires is that any 23 changes in the new transaction that is written to the log. 25 That is, if we have a sequence of changes A through to F, and the object was 43 that an object being relogged does not prevent the tail of the log from ever 56 progresses, ensuring that current operation never gets blocked by itself if the 59 Hence it can be seen that the relogging operation is fundamental to the correct 63 the log over and over again. Worse is the fact that objects tend to get 67 Another feature of the XFS transaction subsystem is that most transactions are [all …]
|
| /Documentation/power/ |
| D | freezing-of-tasks.rst | 17 There are three per-task flags used for that, PF_NOFREEZE, PF_FROZEN 18 and PF_FREEZER_SKIP (the last one is auxiliary). The tasks that have 28 sets this variable. After this, it executes try_to_freeze_tasks() that sends a 30 All freezable tasks must react to that by calling try_to_freeze(), which 33 it loop until PF_FROZEN is cleared for it. Then, we say that the task is 40 try_to_freeze() function (defined in include/linux/freezer.h), that checks 47 that combine interruptible sleep with checking if the task is to be frozen and 69 order to clear the PF_FROZEN flag for each frozen task. Then, the tasks that 101 IV. Why do we do that? 111 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/RCU/ |
| D | stallwarn.txt | 5 options that can be used to fine-tune the detector's operation. Finally, 28 o Booting Linux using a console connection that is too slow to 35 o Anything that prevents RCU's grace-period kthreads from running. 45 that low-priority task is not permitted to run on any other CPU, 51 o A CPU-bound real-time task in a CONFIG_PREEMPT_RT kernel that 62 help avoid this problem. However, please note that doing this 69 Note that certain high-overhead debugging options, for example 77 slow system. Note that thermal throttling and on-demand governors 81 interrupt on a CPU that is not in dyntick-idle mode. This 91 leading the realization that the CPU had failed. [all …]
|
| D | rcu_dereference.txt | 14 bugs due to games that compilers and DEC Alpha can play. 18 DEC Alpha can load a pointer, dereference that pointer, and 19 return data preceding initialization that preceded the store of 31 There are a very few exceptions, namely that you can temporarily 35 bits of that pointer. This clearly means that the pointer 48 rights to substitute zero for this sort of expression, so that 53 and "b" are integers that happen to be equal, the expression 57 o If you are using RCU to protect JITed functions, so that the 62 using the same memory that was used by an earlier JITed function. 78 As before, the reason this is buggy is that relational operators [all …]
|
| D | UP.rst | 6 A common misconception is that, on UP systems, the call_rcu() primitive 8 is that since there is only one CPU, it should not be necessary to 12 This document presents three examples that demonstrate exactly how bad 18 Suppose that an RCU-based algorithm scans a linked list containing 20 this same list in softirq context. Suppose that the process-context scan 40 Suppose that an RCU-based algorithm again scans a linked list containing 41 elements A, B, and C in process contexts, but that it invokes a function 42 on each element as it is scanned. Suppose further that this function 48 underlying RCU, namely that call_rcu() defers invoking its arguments until 59 Suppose that call_rcu() is invoked while holding a lock, and that 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/ |
| D | DMA-attributes.txt | 5 This document describes the semantics of the DMA attributes that are 21 useful, suppose that a device does a DMA write to indicate that data is 29 DMA_ATTR_WEAK_ORDERING specifies that reads and writes to the mapping 30 may be weakly ordered, that is that reads and writes may pass each other. 33 those that do not will simply ignore the attribute and exhibit default 39 DMA_ATTR_WRITE_COMBINE specifies that writes to the mapping may be 43 those that do not will simply ignore the attribute and exhibit default 51 you are guaranteeing to the platform that you have all the correct and 63 that you won't dereference the pointer returned by dma_alloc_attr(). You 64 can treat it as a cookie that must be passed to dma_mmap_attrs() and [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/block/ |
| D | inline-encryption.rst | 21 - IE hardware have a limited number of "keyslots" that can be programmed 25 that specified keyslot. When possible, we want to make multiple requests with 30 to use that encryption context when it processes the bio. 39 We add a struct bio_crypt_ctx to struct bio that can represent an 47 We introduce a keyslot manager (KSM) that handles the translation from 50 upper layers. The generic mode of operation is: each device driver that wants 52 Upper layers that want to use IE on this device can then use this KSM in 55 that the device supports IE. 60 this is achieved through the :c:type:`struct keyslot_mgmt_ll_ops` that the 65 referencing that keyslot). When a new encryption context needs a keyslot, it [all …]
|
| /Documentation/media/uapi/v4l/ |
| D | colorspaces.rst | 17 biology. Just because you have three numbers that describe the 'red', 18 'green' and 'blue' components of the color of a pixel does not mean that 19 you can accurately display that color. A colorspace defines what it 20 actually *means* to have an RGB value of e.g. (255, 0, 0). That is, 24 In order to do that we first need to have a good definition of color, 25 i.e. some way to uniquely and unambiguously define a color so that 27 the human eye has color receptors that are sensitive to three different 41 possible that different SPDs will result in the same stimulation of 46 between SPDs and the perceived color and that resulted in the CIE 1931 47 standard that defines spectral weighting functions that model the [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/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/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. 52 via the linux-acpi@vger.kernel.org mailing list. When that patch 55 by the OS. Linux distributors can back-port that patch for Linux [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 48 atomic context, when some task is already using that I2C bus 57 host. Note that even if PECs are in use, you should not rely 64 or that the reset was attempted but failed. 85 Returned by any component that can't allocate memory when [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/ia64/ |
| D | mca.rst | 5 Feel free to update it with notes about any area that is not clear. 12 asking for deadlock. Also the state of structures that are protected 27 * Slave cpus that receive the MCA interrupt call down into SAL, they 32 sends an unmaskable INIT event to the slave cpus that have not 39 (and does) modify TP. It is allowed to do that as long as it resets 45 assume that the kernel stack is in a fit state to be used. Mainly 53 the kernel stack[1]. So switching to a new kernel stack means that 55 assume that current points into the struct task, switching to a new 63 tasks. The only way to do that on ia64 is to call the unwinder, 67 running or not. That is, whether it is on a cpu or is blocked. The [all …]
|
| /Documentation/admin-guide/sysctl/ |
| D | user.rst | 15 limits on the number of namespaces and other objects that have 18 The primary purpose of these limits is to stop programs that 21 intention that the defaults of these limits are set high enough that 26 verified to be below the per user limit in that user namespace. 33 This recursive counting of created objects ensures that creating a 41 The maximum number of cgroup namespaces that any user in the current 47 The maximum number of ipc namespaces that any user in the current 53 The maximum number of mount namespaces that any user in the current 59 The maximum number of network namespaces that any user in the 65 The maximum number of pid namespaces that any user in the current [all …]
|