| /Documentation/RCU/ |
| D | rcu.rst | 3 RCU Concepts 6 The basic idea behind RCU (read-copy update) is to split destructive 11 since dropped their references. For example, an RCU-protected deletion 14 information on using RCU with linked lists. 19 - Why would anyone want to use RCU? 21 The advantage of RCU's two-part approach is that RCU readers need 25 on modern CPUs is what gives RCU its performance advantages 26 in read-mostly situations. The fact that RCU readers need not 30 if the RCU readers give no indication when they are done? 32 Just as with spinlocks, RCU readers are not permitted to [all …]
|
| D | lockdep.rst | 4 RCU and lockdep checking 7 All flavors of RCU have lockdep checking available, so that lockdep is 8 aware of when each task enters and leaves any flavor of RCU read-side 9 critical section. Each flavor of RCU is tracked separately (but note 11 tracking to include RCU state, which can sometimes help when debugging 14 In addition, RCU provides the following primitives that check lockdep's 17 rcu_read_lock_held() for normal RCU. 18 rcu_read_lock_bh_held() for RCU-bh. 19 rcu_read_lock_sched_held() for RCU-sched. 20 rcu_read_lock_any_held() for any of normal RCU, RCU-bh, and RCU-sched. [all …]
|
| D | whatisRCU.rst | 3 What is RCU? -- "Read, Copy, Update" 6 Please note that the "What is RCU?" LWN series is an excellent place 7 to start learning about RCU: 9 | 1. What is RCU, Fundamentally? https://lwn.net/Articles/262464/ 10 | 2. What is RCU? Part 2: Usage https://lwn.net/Articles/263130/ 11 | 3. RCU part 3: the RCU API https://lwn.net/Articles/264090/ 12 | 4. The RCU API, 2010 Edition https://lwn.net/Articles/418853/ 14 | 5. The RCU API, 2014 Edition https://lwn.net/Articles/609904/ 16 | 6. The RCU API, 2019 Edition https://lwn.net/Articles/777036/ 21 | 1. Unraveling RCU Mysteries: Fundamentals https://www.linuxfoundation.org/webinars/unrav… [all …]
|
| D | RTFP.txt | 4 This document describes RCU-related publications, and is followed by 6 be found at http://www.rdrop.com/users/paulmck/RCU/. For others, browsers 9 The first thing resembling RCU was published in 1980, when Kung and Lehman 23 serialization, which is an RCU-like mechanism that relies on the presence 31 (In contrast, implementation of RCU is permitted only in software licensed 35 At first glance, this has nothing to do with RCU, but nevertheless 37 RCU implementation in DYNIX/ptx. In 1988, Barbara Liskov published 66 synchronization [HMassalinPhD]. RCU makes extremely heavy use of 91 1995 also saw the first publication of DYNIX/ptx's RCU mechanism 98 mechanism, which is quite similar to RCU [Gamsa99]. These operating [all …]
|
| D | stallwarn.rst | 4 Using RCU's CPU Stall Detector 7 This document first discusses what sorts of issues RCU's CPU stall 13 What Causes RCU CPU Stall Warnings? 16 So your kernel printed an RCU CPU stall warning. The next question is 17 "What caused it?" The following problems can result in RCU CPU stall 20 - A CPU looping in an RCU read-side critical section. 37 RCU CPU stall warning messages. Especially if you have added 40 - Anything that prevents RCU's grace-period kthreads from running. 48 happen to preempt a low-priority task in the middle of an RCU 51 in which case the next RCU grace period can never complete, which [all …]
|
| D | checklist.rst | 4 Review Checklist for RCU Patches 9 that make use of RCU. Violating any of the rules listed below will 14 0. Is RCU being applied to a read-mostly situation? If the data 17 performance measurements show that RCU is nonetheless the right 18 tool for the job. Yes, RCU does reduce read-side overhead by 20 of RCU will do much more reading than updating. 22 Another exception is where performance is not an issue, and RCU 27 Yet another exception is where the low real-time latency of RCU's 30 One final exception is where RCU readers are used to prevent 40 RCU does allow *readers* to run (almost) naked, but *writers* must [all …]
|
| D | UP.rst | 3 RCU on Uniprocessor Systems 18 Suppose that an RCU-based algorithm scans a linked list containing 40 Suppose that an RCU-based algorithm again scans a linked list containing 45 RCU usage, since call_rcu() must wait for a grace period to elapse. 48 underlying RCU, namely that call_rcu() defers invoking its arguments until 49 all RCU read-side critical sections currently executing have completed. 85 What locking restriction must RCU callbacks respect? 89 It is important to note that userspace RCU implementations *do* 93 Nevertheless, people writing userspace RCU implementations are strongly 100 Permitting call_rcu() to immediately invoke its arguments breaks RCU, [all …]
|
| D | lockdep-splat.rst | 4 Lockdep-RCU Splat 7 Lockdep-RCU was added to the Linux kernel in early 2010 9 misuses of the RCU API, most notably using one of the rcu_dereference() 10 family to access an RCU-protected pointer without the proper protection. 11 When such misuse is detected, an lockdep-RCU splat is emitted. 13 The usual cause of a lockdep-RCU splat is someone accessing an 14 RCU-protected data structure without either (1) being in the right kind of 15 RCU read-side critical section or (2) holding the right update-side lock. 20 So let's look at an example RCU lockdep splat from 3.0-rc5, one that 24 WARNING: suspicious RCU usage [all …]
|
| D | rcubarrier.rst | 3 RCU and Unloadable Modules 8 RCU updaters sometimes use call_rcu() to initiate an asynchronous wait for 10 struct placed within the RCU-protected data structure and another pointer 16 call_rcu(&p->rcu, p_callback); 23 struct pstruct *p = container_of(rp, struct pstruct, rcu); 34 If we unload the module while some RCU callbacks are pending, 37 http://lwn.net/images/ns/kernel/rcu-drop.jpg. 45 heavy RCU-callback load, then some of the callbacks might be deferred in 56 outstanding RCU callbacks to complete. Please note that rcu_barrier() 57 does **not** imply synchronize_rcu(), in particular, if there are no RCU [all …]
|
| D | torture.rst | 4 RCU Torture Test Operation 11 The CONFIG_RCU_TORTURE_TEST config option is available for all RCU 26 …rcu-torture:--- Start of test: nreaders=16 nfakewriters=4 stat_interval=30 verbose=0 test_no_idle_… 27 …rcu-torture: rtc: (null) ver: 155441 tfle: 0 rta: 155441 rtaf: 8884 rtf: 155440 rtmbe: 0… 28 rcu-torture: Reader Pipe: 727860534 34213 0 0 0 0 0 0 0 0 0 29 rcu-torture: Reader Batch: 727877838 17003 0 0 0 0 0 0 0 0 0 30 …rcu-torture: Free-Block Circulation: 155440 155440 155440 155440 155440 155440 155440 155440 1554… 31 …rcu-torture:--- End of test: SUCCESS: nreaders=16 nfakewriters=4 stat_interval=30 verbose=0 test_n… 36 the RCU torture test. The printk()s use KERN_ALERT, so they should 41 automatic determination as to whether RCU operated correctly. [all …]
|
| D | index.rst | 6 RCU concepts 18 rcu 24 NMI-RCU 27 Design/Memory-Ordering/Tree-RCU-Memory-Ordering
|
| D | listRCU.rst | 3 Using RCU to Protect Read-Mostly Linked Lists 6 One of the most common uses of RCU is protecting read-mostly linked lists 9 This document describes several list-based RCU use cases. 24 A widely used usecase for RCU lists in the kernel is lockless iteration over 54 call_rcu(&p->rcu, delayed_put_task_struct); 69 This pattern is also called an **existence lock**, since RCU refrains 73 of all RCU readers that might possibly have a reference to that object. 82 to RCU. One prominent example involves network packet routing. 94 A straightforward example of this type of RCU use case may be found in 122 This means that RCU can be easily applied to the read side, as follows:: [all …]
|
| D | rcu_dereference.rst | 7 important to correct use of things like RCU. To this end, the pointers 24 from your calls to rcu_dereference() and friends, thus keeping your RCU 28 to load an RCU-protected pointer, otherwise CONFIG_PROVE_RCU 80 - If you are using RCU to protect JITed functions, so that the 143 RCU-protected circular linked lists. 146 of an RCU read-side critical section, and the pointer 153 Within an RCU read-side critical section, there is little 185 That said, this situation can make certain RCU usage 188 of such an RCU usage bug is shown in the section titled 189 "EXAMPLE OF AMPLIFIED RCU-USAGE BUG". [all …]
|
| /Documentation/RCU/Design/Requirements/ |
| D | Requirements.rst | 2 A Tour Through RCU's Requirements 18 Read-copy update (RCU) is a synchronization mechanism that is often used 19 as a replacement for reader-writer locking. RCU is unusual in that 20 updaters do not block readers, which means that RCU's read-side 23 this concurrency between RCU readers and updaters does raise the 24 question of exactly what RCU readers are doing, which in turn raises the 25 question of exactly what RCU's requirements are. 27 This document therefore summarizes RCU's requirements, and can be 28 thought of as an informal, high-level specification for RCU. It is 29 important to understand that RCU's specification is primarily empirical [all …]
|
| /Documentation/devicetree/bindings/phy/ |
| D | lantiq,vrx200-pcie-phy.yaml | 45 lantiq,rcu: 47 description: phandle to the RCU syscon 49 lantiq,rcu-endian-offset: 51 description: the offset of the endian registers for this PHY instance in the RCU syscon 53 lantiq,rcu-big-endian-mask: 73 - lantiq,rcu 74 - lantiq,rcu-endian-offset 75 - lantiq,rcu-big-endian-mask 84 lantiq,rcu = <&rcu0>; 85 lantiq,rcu-endian-offset = <0x4c>; [all …]
|
| /Documentation/filesystems/ |
| D | path-lookup.txt | 22 Since 2.5.62 kernel, dcache has been using a new locking model that uses RCU to 34 Since 2.6.38, RCU is used to make a significant part of the entire path walk 36 even stores into cachelines of common dentries). This is known as "rcu-walk" 84 The hash lists are RCU protected, so list walking is not serialised with 85 concurrent updates (insertion, deletion from the hash). This is a standard RCU 100 Back to the rename case. In usual RCU protected lists, the only operations that 102 list. The object will not be reused until an RCU grace period is complete. 103 This ensures the RCU list traversal primitives can run over the object without 104 problems (see RCU documentation for how this works). 114 new list before waiting for a grace period, this can result in a concurrent RCU [all …]
|
| /Documentation/litmus-tests/rcu/ |
| D | RCU+sync+read.litmus | 1 C RCU+sync+read 6 * This litmus test demonstrates that after a grace period, an RCU updater always 7 * sees all stores done in prior RCU read-side critical sections. Such 10 * This is one implication of the RCU grace-period guarantee, which says (among 11 * other things) that an RCU read-side critical section cannot span a grace period.
|
| D | RCU+sync+free.litmus | 1 C RCU+sync+free 6 * This litmus test demonstrates that an RCU reader can never see a write that 10 * This is a typical pattern of RCU usage, where the write before the grace 14 * This is one implication of the RCU grace-period guarantee, which says (among 15 * other things) that an RCU read-side critical section cannot span a grace period.
|
| /Documentation/devicetree/bindings/mips/lantiq/ |
| D | rcu.txt | 1 Lantiq XWAY SoC RCU binding 4 This binding describes the RCU (reset controller unit) multifunction device, 7 The RCU register range is used for multiple purposes. Mostly one device 10 With this patch all accesses to the RCU registers will go through 17 "lantiq,xrx200-rcu", "simple-mfd", "syscon" 22 Example of the RCU bindings on a xRX200 SoC: 23 rcu0: rcu@203000 { 24 compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
|
| /Documentation/litmus-tests/ |
| D | README | 70 RCU (/rcu directory) 75 ensure that an RCU reader will not see pre-initialization garbage. 77 RCU+sync+read.litmus 78 RCU+sync+free.litmus 79 Both the above litmus tests demonstrate the RCU grace period guarantee 80 that an RCU read-side critical section can never span a grace period.
|
| /Documentation/translations/it_IT/RCU/ |
| D | torture.rst | 6 Le operazioni RCU per le verifiche *torture* 13 RCU. L'opzione creerà un modulo rcutorture che potrete caricare per avviare le 26 …rcu-torture:--- Start of test: nreaders=16 nfakewriters=4 stat_interval=30 verbose=0 test_no_idle_… 27 …rcu-torture: rtc: (null) ver: 155441 tfle: 0 rta: 155441 rtaf: 8884 rtf: 155440 rtmbe: 0… 28 rcu-torture: Reader Pipe: 727860534 34213 0 0 0 0 0 0 0 0 0 29 rcu-torture: Reader Batch: 727877838 17003 0 0 0 0 0 0 0 0 0 30 …rcu-torture: Free-Block Circulation: 155440 155440 155440 155440 155440 155440 155440 155440 1554… 31 …rcu-torture:--- End of test: SUCCESS: nreaders=16 nfakewriters=4 stat_interval=30 verbose=0 test_n… 47 * "ver": Il numero di volte dall'avvio che il processo scrittore di RCU ha 52 illuderti che RCU stia funzionando mentre invece non è il caso. :-/ [all …]
|
| /Documentation/RCU/Design/Data-Structures/ |
| D | Data-Structures.rst | 12 This document describes RCU's major data structures and their relationship 18 RCU is for all intents and purposes a large state machine, and its 19 data structures maintain the state in such a way as to allow RCU readers 20 to execute extremely quickly, while also processing the RCU grace periods 22 The efficiency and scalability of RCU updaters is provided primarily 35 If the actual hardware has only 16 CPUs, RCU will adjust itself 88 32-bit system), then RCU will automatically add more levels to the tree. 90 65,536 CPUs, RCU would configure the ``rcu_node`` tree as follows: 94 RCU currently permits up to a four-level tree, which on a 64-bit system 102 and scalability benefits of partitioning, even though RCU grace-period [all …]
|
| /Documentation/RCU/Design/Expedited-Grace-Periods/ |
| D | Expedited-Grace-Periods.rst | 8 This document describes RCU's expedited grace periods. 9 Unlike RCU's normal grace periods, which accept long latencies to attain 13 There are two flavors of RCU (RCU-preempt and RCU-sched), with an earlier 14 third RCU-bh flavor having been implemented in terms of the other two. 20 The expedited RCU grace periods cannot be accused of being subtle, 31 As always for RCU, once everything has spent some time in a quiescent 35 operation depend on the RCU flavor, as described in the following 38 RCU-preempt Expedited Grace Periods 41 ``CONFIG_PREEMPTION=y`` kernels implement RCU-preempt. 42 The overall flow of the handling of a given CPU by an RCU-preempt [all …]
|
| /Documentation/devicetree/bindings/reset/ |
| D | intel,rcu-gw.yaml | 4 $id: http://devicetree.org/schemas/reset/intel,rcu-gw.yaml# 15 - intel,rcu-lgm 16 - intel,rcu-xrx200 53 compatible = "intel,rcu-lgm";
|
| /Documentation/core-api/ |
| D | entry.rst | 9 * RCU / Context tracking 21 Most instrumentation facilities depend on RCU, so instrumentation is prohibited 22 for entry code before RCU starts watching and exit code after RCU stops 55 All non-instrumentable entry/exit code sections before and after the RCU 85 * RCU / Context tracking 99 * RCU / Context tracking 108 Do not nest syscalls. Nested systcalls will cause RCU and/or context tracking 138 exit handling is slightly different. RCU state is only updated when the 139 interrupt is raised in the context of the CPU's idle task. Otherwise, RCU will 217 * RCU / Context tracking [all …]
|