| /linux/tools/memory-model/ |
| A D | linux-kernel.bell | 35 '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 D | linux-kernel.cat | 53 ([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 D | linux-kernel.def | 27 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 D | mmu_notifier.c | 25 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 D | traps_32.c | 109 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 D | rcu_pending.c | 159 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 D | rcu_pending.h | 14 struct srcu_struct *srcu; member 24 struct srcu_struct *srcu,
|
| /linux/drivers/gpio/ |
| A D | gpiolib.h | 74 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 D | gpiolib-cdev.c | 211 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 D | gpiolib.c | 468 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 D | page_track.c | 96 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 D | netdev.c | 134 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 D | cfg80211.c | 242 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 D | multipath.c | 167 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 D | ioctl.c | 681 __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 D | pvtime.c | 25 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 D | notifier.h | 77 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 D | hid_bpf_dispatch.c | 99 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 D | herd-representation.txt | 54 | 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 D | book3s_hv_uvmem.c | 485 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 D | kvm_mmu.h | 275 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 D | intel_reset.h | 41 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 D | encl.c | 759 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 D | locking.rst | 38 - ``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 D | notifier.c | 526 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()
|