Home
last modified time | relevance | path

Searched refs:srcu (Results 1 – 25 of 92) sorted by relevance

1234

/linux/tools/memory-model/
A Dlinux-kernel.bell35 'after-srcu-read-unlock (*smp_mb__after_srcu_read_unlock*)
39 enum SRCU = 'srcu-lock || 'srcu-unlock || 'sync-srcu
41 (* All srcu events *)
42 let Srcu = Srcu-lock | Srcu-unlock | Sync-srcu
61 let carry-srcu-data = (data ; [~ Srcu-unlock] ; rf)*
62 let srcu-rscs = ([Srcu-lock] ; carry-srcu-data ; data ; [Srcu-unlock]) & loc
65 flag ~empty Srcu-lock \ domain(srcu-rscs) as unmatched-srcu-lock
66 flag ~empty Srcu-unlock \ range(srcu-rscs) as unmatched-srcu-unlock
67 flag ~empty (srcu-rscs^-1 ; srcu-rscs) \ id as multiple-srcu-matches
70 flag ~empty rcu-rscs & (po ; [Sync-srcu] ; po) as invalid-sleep
[all …]
A Dlinux-kernel.cat53 ([M] ; po? ; [Srcu-unlock] ; fencerel(After-srcu-read-unlock) ; [M])
54 let gp = po ; [Sync-rcu | Sync-srcu] ; po?
59 let barrier = fencerel(Barrier | Rmb | Wmb | Mb | Sync-rcu | Sync-srcu |
125 let srcu-gp = [Sync-srcu]
127 let srcu-rscsi = srcu-rscs^-1
144 let rec rcu-order = rcu-gp | srcu-gp |
146 ((srcu-gp ; rcu-link ; srcu-rscsi) & loc) |
148 ((srcu-rscsi ; rcu-link ; srcu-gp) & loc) |
150 ((srcu-gp ; rcu-link ; rcu-order ; rcu-link ; srcu-rscsi) & loc) |
152 ((srcu-rscsi ; rcu-link ; rcu-order ; rcu-link ; srcu-gp) & loc) |
A Dlinux-kernel.def27 smp_mb__after_srcu_read_unlock() { __fence{after-srcu-read-unlock}; }
53 srcu_read_lock(X) __load{srcu-lock}(*X)
54 srcu_read_unlock(X,Y) { __store{srcu-unlock}(*X,Y); }
55 srcu_down_read(X) __load{srcu-lock}(*X)
56 srcu_up_read(X,Y) { __store{srcu-unlock}(*X,Y); }
57 synchronize_srcu(X) { __srcu{sync-srcu}(X); }
58 synchronize_srcu_expedited(X) { __srcu{sync-srcu}(X); }
/linux/mm/
A Dmmu_notifier.c25 DEFINE_STATIC_SRCU(srcu);
311 id = srcu_read_lock(&srcu); in mn_hlist_release()
347 synchronize_srcu(&srcu); in mn_hlist_release()
374 id = srcu_read_lock(&srcu); in __mmu_notifier_clear_flush_young()
394 id = srcu_read_lock(&srcu); in __mmu_notifier_clear_young()
413 id = srcu_read_lock(&srcu); in __mmu_notifier_test_young()
468 id = srcu_read_lock(&srcu); in mn_hlist_invalidate_range_start()
544 id = srcu_read_lock(&srcu); in mn_hlist_invalidate_end()
579 id = srcu_read_lock(&srcu); in __mmu_notifier_arch_invalidate_secondary_tlbs()
831 synchronize_srcu(&srcu); in mmu_notifier_unregister()
[all …]
/linux/arch/sh/kernel/
A Dtraps_32.c109 unsigned char __user *srcu, *dstu; in handle_unaligned_ins() local
132 srcu += regs->regs[0]; in handle_unaligned_ins()
139 if (ma->from(dst, srcu, count)) in handle_unaligned_ins()
182 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins()
187 if (ma->from(dst, srcu, 4)) in handle_unaligned_ins()
202 if (ma->from(dst, srcu, count)) in handle_unaligned_ins()
232 if (ma->from(dst, srcu, 2)) in handle_unaligned_ins()
242 srcu += 4; in handle_unaligned_ins()
251 if (ma->from(dst, srcu, 2)) in handle_unaligned_ins()
259 srcu += 4; in handle_unaligned_ins()
[all …]
/linux/fs/bcachefs/
A Drcu_pending.c159 if (i->head && __poll_state_synchronize_rcu(p->parent->srcu, i->seq)) in merge_expired_lists()
185 __poll_state_synchronize_rcu(pending->srcu, p->objs.data[0].seq)) { in __process_finished_items()
311 __call_rcu(p->parent->srcu, &p->cb, rcu_pending_rcu_cb); in rcu_pending_rcu_cb()
353 if (unlikely(__poll_state_synchronize_rcu(p->parent->srcu, seq))) { in rcu_pending_enqueue_list()
419 seq = __get_state_synchronize_rcu(pending->srcu); in __rcu_pending_enqueue()
481 __call_rcu(pending->srcu, &p->cb, rcu_pending_rcu_cb); in __rcu_pending_enqueue()
483 __start_poll_synchronize_rcu(pending->srcu); in __rcu_pending_enqueue()
492 if (unlikely(__poll_state_synchronize_rcu(pending->srcu, seq))) { in __rcu_pending_enqueue()
595 __rcu_barrier(pending->srcu); in rcu_pending_exit()
629 struct srcu_struct *srcu, in rcu_pending_init() argument
[all …]
A Drcu_pending.h14 struct srcu_struct *srcu; member
24 struct srcu_struct *srcu,
/linux/drivers/gpio/
A Dgpiolib.h74 struct srcu_struct srcu; member
217 srcu_read_unlock(&_T.gdev->srcu, _T.idx),
222 _guard.idx = srcu_read_lock(&_guard.gdev->srcu);
224 &_guard.gdev->srcu);
273 scoped_guard(srcu, &desc->gdev->desc_srcu) { \
281 scoped_guard(srcu, &desc->gdev->desc_srcu) { \
289 scoped_guard(srcu, &desc->gdev->desc_srcu) { \
A Dgpiolib-cdev.c211 guard(srcu)(&lh->gdev->srcu); in linehandle_ioctl()
1575 guard(srcu)(&lr->gdev->srcu); in linereq_ioctl()
1606 guard(srcu)(&lr->gdev->srcu); in linereq_poll()
1628 guard(srcu)(&lr->gdev->srcu); in linereq_read()
1929 guard(srcu)(&le->gdev->srcu); in lineevent_poll()
1967 guard(srcu)(&le->gdev->srcu); in lineevent_read()
2049 guard(srcu)(&le->gdev->srcu); in lineevent_ioctl()
2571 guard(srcu)(&gdev->srcu); in gpio_ioctl()
2657 guard(srcu)(&cdev->gdev->srcu); in lineinfo_watch_poll()
2762 guard(srcu)(&gdev->srcu); in gpio_chrdev_open()
[all …]
A Dgpiolib.c468 guard(srcu)(&gpio_devices_srcu); in gpio_name_to_desc()
472 guard(srcu)(&gdev->srcu); in gpio_name_to_desc()
817 guard(srcu)(&gpio_devices_srcu); in gpiochip_setup_devs()
1135 synchronize_srcu(&gdev->srcu); in gpiochip_remove()
1193 guard(srcu)(&gpio_devices_srcu); in gpio_device_find()
1200 guard(srcu)(&gdev->srcu); in gpio_device_find()
3015 guard(srcu)(&gdev->srcu); in gpiod_get_raw_value_commit()
3049 guard(srcu)(&gdev->srcu); in gpio_device_chip_cmp()
3649 guard(srcu)(&gdev->srcu); in gpiod_to_irq()
4883 guard(srcu)(&gdev->srcu); in gpiolib_dbg_show()
[all …]
/linux/arch/x86/kvm/mmu/
A Dpage_track.c96 srcu_read_lock_held(&kvm->srcu)); in __kvm_write_track_add_gfn()
119 srcu_read_lock_held(&kvm->srcu)); in __kvm_write_track_remove_gfn()
324 idx = srcu_read_lock(&kvm->srcu); in kvm_write_track_add_gfn()
328 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_add_gfn()
336 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_add_gfn()
354 idx = srcu_read_lock(&kvm->srcu); in kvm_write_track_remove_gfn()
358 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_remove_gfn()
366 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_remove_gfn()
/linux/drivers/net/wireless/microchip/wilc1000/
A Dnetdev.c134 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_wlan_get_num_conn_ifcs()
139 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_wlan_get_num_conn_ifcs()
148 srcu_idx = srcu_read_lock(&wl->srcu); in wilc_wake_tx_queues()
153 srcu_read_unlock(&wl->srcu, srcu_idx); in wilc_wake_tx_queues()
663 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_set_mac_addr()
821 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_frmw_to_host()
908 synchronize_srcu(&wilc->srcu); in wilc_netdev_cleanup()
929 srcu_idx = srcu_read_lock(&wl->srcu); in wilc_get_available_idx()
936 srcu_read_unlock(&wl->srcu, srcu_idx); in wilc_get_available_idx()
989 synchronize_srcu(&wl->srcu); in wilc_netdev_ifc_init()
[all …]
A Dcfg80211.c242 srcu_idx = srcu_read_lock(&wl->srcu); in set_channel()
245 srcu_read_unlock(&wl->srcu, srcu_idx); in set_channel()
256 srcu_read_unlock(&wl->srcu, srcu_idx); in set_channel()
811 srcu_idx = srcu_read_lock(&wl->srcu); in set_wiphy_params()
866 srcu_read_unlock(&wl->srcu, srcu_idx); in set_wiphy_params()
1544 srcu_idx = srcu_read_lock(&wl->srcu); in add_virtual_intf()
1616 synchronize_srcu(&wl->srcu); in del_virtual_intf()
1626 srcu_idx = srcu_read_lock(&wl->srcu); in wilc_set_wakeup()
1650 srcu_idx = srcu_read_lock(&wl->srcu); in set_tx_power()
1746 init_srcu_struct(&wl->srcu); in wlan_init_locks()
[all …]
/linux/drivers/nvme/host/
A Dmultipath.c167 srcu_idx = srcu_read_lock(&ctrl->srcu); in nvme_kick_requeue_lists()
175 srcu_read_unlock(&ctrl->srcu, srcu_idx); in nvme_kick_requeue_lists()
211 srcu_idx = srcu_read_lock(&ctrl->srcu); in nvme_mpath_clear_ctrl_paths()
216 srcu_read_unlock(&ctrl->srcu, srcu_idx); in nvme_mpath_clear_ctrl_paths()
226 srcu_idx = srcu_read_lock(&head->srcu); in nvme_mpath_revalidate_paths()
231 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_mpath_revalidate_paths()
310 &head->srcu); in nvme_round_robin_path()
458 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_submit_bio()
500 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_get_unique_id()
696 synchronize_srcu(&head->srcu); in nvme_mpath_set_live()
[all …]
A Dioctl.c681 __releases(&head->srcu) in nvme_ns_head_ctrl_ioctl()
687 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_ctrl_ioctl()
707 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_ioctl()
723 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_ioctl()
738 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_chr_ioctl()
749 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_chr_ioctl()
758 int srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_chr_uring_cmd()
764 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_chr_uring_cmd()
802 srcu_idx = srcu_read_lock(&ctrl->srcu); in nvme_dev_user_cmd()
822 srcu_read_unlock(&ctrl->srcu, srcu_idx); in nvme_dev_user_cmd()
[all …]
/linux/arch/arm64/kvm/
A Dpvtime.c25 idx = srcu_read_lock(&kvm->srcu); in kvm_update_stolen_time()
32 srcu_read_unlock(&kvm->srcu, idx); in kvm_update_stolen_time()
96 idx = srcu_read_lock(&kvm->srcu); in kvm_arm_pvtime_set_attr()
99 srcu_read_unlock(&kvm->srcu, idx); in kvm_arm_pvtime_set_attr()
/linux/include/linux/
A Dnotifier.h77 struct srcu_struct srcu; member
96 cleanup_srcu_struct(&(name)->srcu);
112 .srcu = __SRCU_STRUCT_INIT(name.srcu, name.srcuu, pcpu), \
/linux/drivers/hid/bpf/
A Dhid_bpf_dispatch.c99 idx = srcu_read_lock(&hdev->bpf.srcu); in dispatch_hid_bpf_raw_requests()
101 srcu_read_lock_held(&hdev->bpf.srcu)) { in dispatch_hid_bpf_raw_requests()
112 srcu_read_unlock(&hdev->bpf.srcu, idx); in dispatch_hid_bpf_raw_requests()
133 idx = srcu_read_lock(&hdev->bpf.srcu); in dispatch_hid_bpf_output_report()
135 srcu_read_lock_held(&hdev->bpf.srcu)) { in dispatch_hid_bpf_output_report()
146 srcu_read_unlock(&hdev->bpf.srcu, idx); in dispatch_hid_bpf_output_report()
638 synchronize_srcu(&hdev->bpf.srcu); in hid_bpf_destroy_device()
639 cleanup_srcu_struct(&hdev->bpf.srcu); in hid_bpf_destroy_device()
647 return init_srcu_struct(&hdev->bpf.srcu); in hid_bpf_device_init()
/linux/tools/memory-model/Documentation/
A Dherd-representation.txt54 | srcu_read_lock | R[srcu-lock] |
56 | srcu_read_unlock | W[srcu-unlock] |
58 | synchronize_srcu | SRCU[sync-srcu] |
59 | smp_mb__after_srcu_read_unlock | F[after-srcu-read-unlock] |
/linux/arch/powerpc/kvm/
A Dbook3s_hv_uvmem.c485 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_h_svm_init_start()
504 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_h_svm_init_start()
674 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_h_svm_init_abort()
679 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_h_svm_init_abort()
841 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_h_svm_init_done()
864 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_h_svm_init_done()
889 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_share_page()
926 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_share_page()
959 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_h_svm_page_in()
986 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_h_svm_page_in()
[all …]
/linux/arch/arm64/include/asm/
A Dkvm_mmu.h275 int srcu_idx = srcu_read_lock(&kvm->srcu);
278 srcu_read_unlock(&kvm->srcu, srcu_idx);
286 int srcu_idx = srcu_read_lock(&kvm->srcu);
289 srcu_read_unlock(&kvm->srcu, srcu_idx);
/linux/drivers/gpu/drm/i915/gt/
A Dintel_reset.h41 int __must_check intel_gt_reset_trylock(struct intel_gt *gt, int *srcu);
42 int __must_check intel_gt_reset_lock_interruptible(struct intel_gt *gt, int *srcu);
/linux/arch/x86/kernel/cpu/sgx/
A Dencl.c759 cleanup_srcu_struct(&encl->srcu); in sgx_encl_release()
795 synchronize_srcu(&encl_mm->encl->srcu); in sgx_mmu_notifier_release()
822 idx = srcu_read_lock(&encl->srcu); in sgx_encl_find_mm()
831 srcu_read_unlock(&encl->srcu, idx); in sgx_encl_find_mm()
933 idx = srcu_read_lock(&encl->srcu); in sgx_encl_cpumask()
944 srcu_read_unlock(&encl->srcu, idx); in sgx_encl_cpumask()
1018 idx = srcu_read_lock(&encl->srcu); in sgx_encl_get_mem_cgroup()
1031 srcu_read_unlock(&encl->srcu, idx); in sgx_encl_get_mem_cgroup()
1212 idx = srcu_read_lock(&encl->srcu); in sgx_zap_enclave_ptes()
1229 srcu_read_unlock(&encl->srcu, idx); in sgx_zap_enclave_ptes()
/linux/Documentation/virt/kvm/
A Dlocking.rst38 - ``synchronize_srcu(&kvm->srcu)`` is called inside critical sections
40 be taken inside a kvm->srcu read-side critical section; that is, the
43 srcu_read_lock(&kvm->srcu);
48 kvm->srcu read-side critical section, for example while processing
273 ``kvm->srcu``
275 :Type: srcu lock
279 :Comment: The srcu read lock must be held while accessing memslots (e.g.
282 The srcu index can be stored in kvm_vcpu->srcu_idx per vcpu
290 in a ``kvm->srcu`` read-side critical section.
/linux/kernel/
A Dnotifier.c526 synchronize_srcu(&nh->srcu); in srcu_notifier_chain_unregister()
553 idx = srcu_read_lock(&nh->srcu); in srcu_notifier_call_chain()
555 srcu_read_unlock(&nh->srcu, idx); in srcu_notifier_call_chain()
575 if (init_srcu_struct(&nh->srcu) < 0) in srcu_init_notifier_head()

Completed in 60 milliseconds

1234