• Home
  • Raw
  • Download

Lines Matching +full:shared +full:- +full:interrupt

20 there is only one thread-of-control within the region(s) protected by that
26 Documentation/memory-barriers.txt
33 spinlock for most things - using more than one spinlock can make things a
41 shared data structures **everywhere** they are used. The spinlocks are most
45 NOTE! The spin-lock is safe only when you **also** use the lock itself
47 touches a shared variable has to agree about the spinlock they want
50 ----
52 Lesson 2: reader-writer spinlocks.
56 to mostly read from the shared variables, the reader-writer locks
61 NOTE! reader-writer locks require more atomic memory operations than
87 Also, you cannot "upgrade" a read-lock to a write-lock, so if you at _any_
89 to get the write-lock at the very beginning.
91 NOTE! We are working hard to remove reader-writer spinlocks in most
95 ----
100 The single spin-lock primitives above are by no means the only ones. They
104 (which is just a single instruction on a x86, but it's an expensive one -
110 never used in interrupt handlers, you can use the non-irq versions::
116 (and the equivalent read-write versions too, of course). The spinlock will
126 <- interrupt comes in:
129 where an interrupt tries to lock an already locked variable. This is ok if
130 the other interrupt happens on another CPU, but it is _not_ ok if the
131 interrupt happens on the same CPU that already holds the lock, because the
132 lock will obviously never be released (because the interrupt is waiting
133 for the lock, and the lock-holder is interrupted by the interrupt and will
134 not continue until the interrupt has been processed).
136 (This is also the reason why the irq-versions of the spinlocks only need
137 to disable the _local_ interrupts - it's ok to use spinlocks in interrupts
138 on other CPU's, because an interrupt on another CPU doesn't interrupt the
139 CPU that holds the lock, so the lock-holder can continue and eventually
144 ----