/linux-6.6.21/tools/memory-model/Documentation/ |
D | glossary.txt | 9 dependency" extends from that load extending to the later access. 20 address dependency extends from that rcu_dereference() to that 27 Acquire: With respect to a lock, acquiring that lock, for example, 29 a special operation that includes a load and which orders that 30 load before later memory references running on that same CPU. 36 to that same variable, (in other words, the acquire load "reads 37 from" the release store), then all operations preceding that 38 store "happen before" any operations following that load acquire. 56 a "control dependency" extends from that load to that store. 71 that is required. In other cases, the notion of pairing must be [all …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/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 29 Take the locks that need to be taken, in inode pointer order if need 30 to take both (that can happen only when both source and target are 33 only with RENAME_EXCHANGE, and that won't be removing the target). 39 * check that source is not a directory 62 The rules above obviously guarantee that all directories that are going to be 105 blocked on source and it means that it doesn't hold any locks. 108 has a child that is also contended. Indeed, suppose that it is held by 110 is blocked on belongs to child of that object due to (1). [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 …]
|
/linux-6.6.21/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 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 75 It turns out that since nobody would be stupid enough to ever really let [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 …]
|
/linux-6.6.21/Documentation/networking/ |
D | nexthop-group-resilient.rst | 7 Resilient groups are a type of next-hop group that is aimed at minimizing 34 that they resolve to. 37 this hash space reassignment causes an issue that packets from a single 38 flow suddenly end up arriving at a server that does not expect them. This 42 the same server, the issue is that different latencies and reordering along 49 to choose a hash table bucket, then reads the next hop that this bucket 56 the buckets that held it are simply reassigned to other next hops:: 70 choose a subset of buckets that are currently not used for forwarding 82 this number a "wants count" of a next hop. In case of an event that might 86 Next hops that have fewer buckets than their wants count, are called [all …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/drivers/pinctrl/intel/ |
D | Kconfig | 21 Cherryview/Braswell pinctrl driver provides an interface that 29 provides an interface that allows configuring of PCH pins and 44 This pinctrl driver provides an interface that allows configuring 51 Broxton pinctrl driver provides an interface that allows 58 This pinctrl driver provides an interface that allows configuring 65 This pinctrl driver provides an interface that allows configuring 72 This pinctrl driver provides an interface that allows configuring 79 This pinctrl driver provides an interface that allows configuring 86 This pinctrl driver provides an interface that allows configuring 93 This pinctrl driver provides an interface that allows configuring [all …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/Documentation/powerpc/ |
D | qe_firmware.rst | 31 the particular license, please see the license text that is distributed with 45 integers that compose the actual QE microcode. 47 The term 'firmware' refers to a binary blob that contains the microcode as 48 well as other data that 55 Firmware files are binary files that contain only a firmware. 70 needs split I-RAM. Split I-RAM is only meaningful for SOCs that have 80 5) If necessary, device drivers that need the virtual traps and extended mode 91 This structure contains 6 words that the application should copy to some 119 This is a double word bit array (64 bits) that defines special functionality 127 | 0 | General | Indicates that prior to each host command | [all …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/Documentation/userspace-api/media/cec/ |
D | cec-ioc-dqevent.rst | 40 the new one. This means that intermediate results can be thrown away but 41 that the latest event is always available. This also means that is it 42 possible to read two successive events that have the same value (e.g. 44 the same state). In that case the intermediate state changes were lost but 45 it is guaranteed that the state did change in between the two events. 65 has the unregistered logical address. In that case all other bits are 0. 69 This field is only valid if ``CEC_CAP_CONNECTOR_INFO`` is set. If that 70 capability is set and ``have_conn_info`` is zero, then that indicates 71 that the HDMI connector device is not instantiated, either because 91 size of the message queue guarantees that all messages received in [all …]
|
/linux-6.6.21/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 …]
|
/linux-6.6.21/Documentation/RCU/ |
D | rcu_dereference.rst | 17 bugs due to games that compilers and DEC Alpha can play. 21 DEC Alpha can load a pointer, dereference that pointer, and 22 return data preceding initialization that preceded the store 35 takes on the role of the lockless_dereference() primitive that 41 There are a very few exceptions, namely that you can temporarily 45 bits of that pointer. This clearly means that the pointer 58 rights to substitute zero for this sort of expression, so that 63 and "b" are integers that happen to be equal, the expression 67 - If you are using RCU to protect JITed functions, so that the 72 using the same memory that was used by an earlier JITed function. [all …]
|
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 73 Please note that you *cannot* rely on code known to be built 86 any locks or atomic operations. This means that readers will 93 RCU-protected data structures that have been added to 99 locks (that are acquired by both readers and writers) [all …]
|
/linux-6.6.21/Documentation/RCU/Design/Expedited-Grace-Periods/ |
D | Expedited-Grace-Periods.rst | 21 given that they for all intents and purposes hammer every CPU that 24 The one saving grace is that the hammer has grown a bit smaller 30 of that quiescent state. 49 or a state that is reached after some time. 62 Otherwise, it sets flags so that the outermost ``rcu_read_unlock()`` 65 CPUs that might have RCU read-side critical sections. 71 When that happens, RCU will enqueue the task, which will the continue to 87 | the CPUs? After all, that would avoid all those real-time-unfriendly | 97 | ``rcu_read_unlock()`` invocation, which means that the remote state | 98 | testing would not help the worst-case latency that real-time | [all …]
|
/linux-6.6.21/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 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 41 perception of color. Specifically that standard defines functions that [all …]
|
/linux-6.6.21/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 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. 61 - Do not rebase a branch that contains history created by others. If you [all …]
|
/linux-6.6.21/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 …]
|