| /linux/include/linux/ |
| H A D | rwbase_rt.h | 12 atomic_t readers; member 18 .readers = ATOMIC_INIT(READER_BIAS), \ 25 atomic_set(&(rwbase)->readers, READER_BIAS); \ 31 return atomic_read(&rwb->readers) != READER_BIAS; in rw_base_is_locked() 36 return atomic_read(&rwb->readers) == WRITER_BIAS; in rw_base_is_write_locked() 41 return atomic_read(&rwb->readers) > 0; in rw_base_is_contended()
|
| /linux/drivers/misc/cardreader/ |
| H A D | Kconfig | 9 Alcor Micro card readers support access to many types of memory cards, 21 Realtek card readers support access to many types of memory cards, 30 Select this option to get support for Realtek USB 2.0 card readers
|
| /linux/Documentation/RCU/ |
| H A D | rcu.rst | 10 must be long enough that any readers accessing the item being deleted have 21 The advantage of RCU's two-part approach is that RCU readers need 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 42 same effect, but require that the readers manipulate CPU-local
|
| H A D | checklist.rst | 30 One final exception is where RCU readers are used to prevent 40 RCU does allow *readers* to run (almost) naked, but *writers* must 92 The whole point of RCU is to permit readers to run without 93 any locks or atomic operations. This means that readers will 106 locks (that are acquired by both readers and writers) 107 that guard per-element state. Fields that the readers 113 c. Make updates appear atomic to readers. For example, 117 appear to be atomic to RCU readers, nor will sequences 125 d. Carefully order the updates and the reads so that readers 168 is common to readers and updaters. However, lockdep [all …]
|
| H A D | whatisRCU.rst | 59 Section 1, though most readers will profit by reading this section at 82 new versions of these data items), and can run concurrently with readers. 84 readers is the semantics of modern CPUs guarantee that readers will see 88 removal phase. Because reclaiming data items can disrupt any readers 90 not start until readers no longer hold references to those data items. 94 reclamation phase until all readers active during the removal phase have 96 callback that is invoked after they finish. Only readers that are active 104 readers cannot gain a reference to it. 106 b. Wait for all previous readers to complete their RCU read-side 109 c. At this point, there cannot be any readers who hold references [all …]
|
| /linux/Documentation/locking/ |
| H A D | lockdep-design.rst | 405 spin_lock() or write_lock()), non-recursive readers (i.e. shared lockers, like 406 down_read()) and recursive readers (recursive shared lockers, like rcu_read_lock()). 410 r: stands for non-recursive readers. 411 R: stands for recursive readers. 412 S: stands for all readers (non-recursive + recursive), as both are shared lockers. 413 N: stands for writers and non-recursive readers, as both are not recursive. 417 Recursive readers, as their name indicates, are the lockers allowed to acquire 421 While non-recursive readers will cause a self deadlock if trying to acquire inside 424 The difference between recursive readers and non-recursive readers is because: 425 recursive readers get blocked only by a write lock *holder*, while non-recursive [all …]
|
| H A D | locktorture.rst | 40 ownership (readers). The default is the same amount of writer 42 both readers and writers be the amount of online CPUs.
|
| /linux/drivers/misc/ibmasm/ |
| H A D | event.c | 30 list_for_each_entry(reader, &sp->event_buffer->readers, node) in wake_up_event_readers() 123 list_add(&reader->node, &sp->event_buffer->readers); in ibmasm_event_reader_register() 153 INIT_LIST_HEAD(&buffer->readers); in ibmasm_event_buffer_init()
|
| /linux/fs/ |
| H A D | pipe.c | 427 !READ_ONCE(pipe->readers); in pipe_writable() 460 if (!pipe->readers) { in anon_pipe_write() 501 if (!pipe->readers) { in anon_pipe_write() 702 if (!pipe->readers) in pipe_poll() 731 pipe->readers--; in pipe_release() 736 if (!pipe->readers != !pipe->writers) { in pipe_release() 902 pipe->readers = pipe->writers = 1; in get_pipe_inode() 1167 if (pipe->readers++ == 0) in fifo_open() 1189 if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !pipe->readers) in fifo_open() 1196 if (!is_pipe && !pipe->readers) { in fifo_open() [all …]
|
| H A D | splice.c | 209 if (unlikely(!pipe->readers)) { in splice_to_pipe() 251 if (unlikely(!pipe->readers)) { in add_to_pipe() 1056 pipe->readers = 1; in splice_direct_to_actor() 1262 if (unlikely(!pipe->readers)) { in wait_for_space() 1693 if (!pipe->readers) { in opipe_prep() 1749 if (!opipe->readers) { in splice_pipe_to_pipe() 1870 if (!opipe->readers) { in link_pipe()
|
| /linux/drivers/soc/aspeed/ |
| H A D | aspeed-p2a-ctrl.c | 65 u32 readers; member 192 ctrl->readers += 1; in aspeed_p2a_ioctl() 275 priv->parent->readers -= priv->read; in aspeed_p2a_release() 299 if (!open_regions && priv->parent->readers == 0) in aspeed_p2a_release()
|
| /linux/drivers/hid/ |
| H A D | hid-roccat.c | 47 struct list_head readers; member 191 list_add_tail(&reader->node, &device->readers); in roccat_open() 270 list_for_each_entry(reader, &device->readers, node) { in roccat_report_event() 339 INIT_LIST_HEAD(&device->readers); in roccat_connect()
|
| /linux/drivers/md/dm-vdo/indexer/ |
| H A D | index-layout.c | 889 struct buffered_reader *readers[MAX_ZONES]; in uds_load_index_state() local 899 result = open_region_reader(layout, &isl->open_chapter, &readers[0]); in uds_load_index_state() 903 result = uds_load_open_chapter(index, readers[0]); in uds_load_index_state() 904 uds_free_buffered_reader(readers[0]); in uds_load_index_state() 910 &readers[zone]); in uds_load_index_state() 913 uds_free_buffered_reader(readers[zone - 1]); in uds_load_index_state() 919 result = uds_load_volume_index(index->volume_index, readers, isl->zone_count); in uds_load_index_state() 921 uds_free_buffered_reader(readers[zone]); in uds_load_index_state() 925 result = open_region_reader(layout, &isl->index_page_map, &readers[0]); in uds_load_index_state() 929 result = uds_read_index_page_map(index->volume->index_page_map, readers[0]); in uds_load_index_state() [all …]
|
| H A D | volume-index.h | 183 struct buffered_reader **readers,
|
| /linux/tools/testing/selftests/kvm/include/ |
| H A D | userfaultfd_util.h | 31 pthread_t *readers; member
|
| /linux/drivers/iio/ |
| H A D | TODO | 14 to state struct and using property handlers and readers.
|
| /linux/Documentation/trace/ |
| H A D | ring-buffer-map.rst | 43 Concurrent readers (either another application mapping that ring-buffer or the 45 the ring-buffer and the output is unpredictable, just like concurrent readers on
|
| /linux/net/sunrpc/ |
| H A D | cache.c | 817 int readers; member 867 rq->readers++; in cache_read() 901 rq->readers--; in cache_read() 902 if (rq->readers == 0 && in cache_read() 1077 cr->readers--; in cache_release() 1078 if (cr->readers == 0 && in cache_release() 1125 if (cr->readers != 0) in cache_dequeue() 1253 crq->readers = 0; in cache_pipe_upcall()
|
| /linux/kernel/locking/ |
| H A D | rwsem.c | 806 int readers = count >> RWSEM_READER_SHIFT; in rwsem_rspin_threshold() local 809 if (readers > 30) in rwsem_rspin_threshold() 810 readers = 30; in rwsem_rspin_threshold() 811 delta = (20 + readers) * NSEC_PER_USEC / 2; in rwsem_rspin_threshold() 1524 int count = atomic_read(&sem->rwbase.readers); in is_rwsem_reader_owned()
|
| /linux/drivers/mtd/ubi/ |
| H A D | kapi.c | 163 vol->readers += 1; in ubi_open_volume() 173 if (vol->exclusive || vol->writers || vol->readers || in ubi_open_volume() 357 vol->readers -= 1; in ubi_close_volume()
|
| H A D | cdev.c | 50 users = vol->readers + vol->writers + vol->exclusive + vol->metaonly; in get_exclusive() 56 vol->readers = vol->writers = vol->metaonly = 0; in get_exclusive() 76 ubi_assert(vol->readers == 0 && vol->writers == 0 && vol->metaonly == 0); in revoke_exclusive() 80 vol->readers = 1; in revoke_exclusive()
|
| /linux/Documentation/driver-api/media/ |
| H A D | dtv-common.rst | 43 Two or more readers must be locked against each other.
|
| /linux/Documentation/ABI/testing/ |
| H A D | dev-kmsg | 31 persistent state; many readers can concurrently open the device 32 and read from it, without affecting other readers.
|
| /linux/include/media/ |
| H A D | dvbdev.h | 173 int readers; member
|
| /linux/fs/btrfs/ |
| H A D | locking.h | 224 atomic_t readers; member
|