/linux/tools/memory-model/Documentation/ |
H A 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/Documentation/admin-guide/sysctl/ |
H A 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/Documentation/core-api/ |
H A 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/Documentation/process/ |
H A 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 …]
|
H A 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 …]
|
H A D | handling-regressions.rst | 10 user's point of view; if you never read that text, go and at least skim over it 20 * When receiving a mailed report that did not CC the list, bring it into the 47 only fixing part of the issue that caused the regression, you may use 71 * When you receive a report by mail that did not CC the list, immediately bring 73 try to ensure it gets CCed again in case you reply to a reply that omitted 96 you want to see tracked; that's important, as regzbot will later look out 107 Regzbot will then automatically associate patches with the report that 133 these tags are of great value for everyone (you included) that might be looking 146 * Run a kernel with a regression that impacts usage. 156 How to realize that in practice depends on various factors. Use the following [all …]
|
/linux/Documentation/networking/ |
H A 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/Documentation/networking/devlink/ |
H A 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/Documentation/power/ |
H A 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 …]
|
/linux/Documentation/driver-api/driver-model/ |
H A 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/Documentation/arch/powerpc/ |
H A 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/Documentation/mm/ |
H A 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 …]
|
H A 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/Documentation/filesystems/ |
H A 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 83 possibility that directory we see in one place gets moved by the server [all …]
|
/linux/Documentation/litmus-tests/ |
H A D | README | 5 Each subdirectory contains litmus tests that are typical to describe the 16 Test that an atomic RMW followed by a smp_mb__after_atomic() is 21 Test that atomic_set() cannot break the atomicity of atomic RMWs. 25 Demonstrate that a failing cmpxchg() operation acts as a full barrier 29 Demonstrate that a failing cmpxchg() operation acts as an acquire 33 Demonstrate that a failing cmpxchg() operation does not act as a 37 Demonstrate that a failing cmpxchg() operation does not act as an 45 Demonstrates that double-checked locking needs more than just 49 Demonstrates corrected double-checked locking that uses 56 shows how to use the "filter" clause to discard executions that [all …]
|
/linux/drivers/pinctrl/intel/ |
H A D | Kconfig | 21 Cherryview/Braswell pinctrl driver provides an interface that 29 provides an interface that allows configuring of PCH pins and 45 This pinctrl driver provides an interface that allows configuring 55 This pinctrl driver provides an interface that allows configuring 62 Broxton pinctrl driver provides an interface that allows 69 This pinctrl driver provides an interface that allows configuring 76 This pinctrl driver provides an interface that allows configuring 83 This pinctrl driver provides an interface that allows configuring 90 This pinctrl driver provides an interface that allows configuring 97 This pinctrl driver provides an interface that allows configuring [all …]
|
/linux/Documentation/userspace-api/media/cec/ |
H A 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/Documentation/RCU/Design/Expedited-Grace-Periods/ |
H A 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/Documentation/RCU/ |
H A 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 …]
|
/linux/Documentation/userspace-api/media/v4l/ |
H A 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/Documentation/maintainer/ |
H A 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/Documentation/arch/arm/google/ |
H A 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/Documentation/firmware-guide/acpi/ |
H A 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 …]
|
/linux/Documentation/i2c/ |
H A 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 …]
|
/linux/LICENSES/preferred/ |
H A D | LGPL-2.1 | 45 price. Our General Public Licenses are designed to make sure that you have 47 service if you wish); that you receive source code or can get it if you 48 want it; that you can change the software and use pieces of it in new free 49 programs; and that you are informed that you can do these things. 51 To protect your rights, we need to make restrictions that forbid 57 a fee, you must give the recipients all the rights that we gave you. You 58 must make sure that they, too, receive or can get the source code. If you 60 the recipients, so that they can relink them with the library after making 68 To protect each distributor, we want to make it very clear that there is no 70 else and passed on, the recipients should know that what they have is not [all …]
|