| /linux/tools/memory-model/ |
| H A D | linux-kernel.bell | 36 'after-srcu-read-unlock (*smp_mb__after_srcu_read_unlock*) 51 enum SRCU = 'srcu-lock || 'srcu-unlock || 'sync-srcu 53 (* All srcu events *) 54 let Srcu = Srcu-lock | Srcu-unlock | Sync-srcu 73 let carry-srcu-data = (data ; [~ Srcu-unlock] ; rf)* 74 let srcu-rscs = ([Srcu-lock] ; carry-srcu-data ; data ; [Srcu-unlock]) & loc 77 flag ~empty Srcu-lock \ domain(srcu [all...] |
| H A D | linux-kernel.cat | 63 ([M] ; po? ; [Srcu-unlock] ; fencerel(After-srcu-read-unlock) ; [M]) 64 let gp = po ; [Sync-rcu | Sync-srcu] ; po? 69 let barrier = fencerel(Barrier | Rmb | Wmb | Mb | Sync-rcu | Sync-srcu | 135 let srcu-gp = [Sync-srcu] 137 let srcu-rscsi = srcu-rscs^-1 154 let rec rcu-order = rcu-gp | srcu-gp | 156 ((srcu-gp ; rcu-link ; srcu [all...] |
| H 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/arch/sh/kernel/ |
| H A D | traps_32.c | 109 unsigned char __user *srcu, *dstu; in handle_unaligned_ins() local 131 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins() 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() 183 srcu += (instruction & 0x000F) << 2; in handle_unaligned_ins() 187 if (ma->from(dst, srcu, 4)) in handle_unaligned_ins() 193 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins() 202 if (ma->from(dst, srcu, count)) in handle_unaligned_ins() 224 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins() [all …]
|
| /linux/drivers/nvme/host/ |
| H A D | multipath.c | 221 srcu_idx = srcu_read_lock(&ctrl->srcu); in nvme_kick_requeue_lists() 223 srcu_read_lock_held(&ctrl->srcu)) { in nvme_kick_requeue_lists() 230 srcu_read_unlock(&ctrl->srcu, srcu_idx); in nvme_kick_requeue_lists() 262 srcu_idx = srcu_read_lock(&ctrl->srcu); in nvme_mpath_clear_ctrl_paths() 264 srcu_read_lock_held(&ctrl->srcu)) { in nvme_mpath_clear_ctrl_paths() 268 srcu_read_unlock(&ctrl->srcu, srcu_idx); in nvme_mpath_clear_ctrl_paths() 278 srcu_idx = srcu_read_lock(&head->srcu); in nvme_mpath_revalidate_paths() 280 srcu_read_lock_held(&head->srcu)) { in nvme_mpath_revalidate_paths() 284 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_mpath_revalidate_paths() 328 __must_hold_shared(&head->srcu) in __nvme_find_path() [all...] |
| H A D | ioctl.c | 732 __releases_shared(&head->srcu) in nvme_ns_head_ctrl_ioctl() 738 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_ctrl_ioctl() 758 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_ioctl() 774 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_ioctl() 789 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_chr_ioctl() 800 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_chr_ioctl() 809 int srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_chr_uring_cmd() 815 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_chr_uring_cmd() 849 srcu_idx = srcu_read_lock(&ctrl->srcu); in nvme_dev_user_cmd() 869 srcu_read_unlock(&ctrl->srcu, srcu_idx); in nvme_dev_user_cmd() [all …]
|
| H A D | core.c | 694 cleanup_srcu_struct(&head->srcu); in nvme_free_ns_head() 4031 ret = init_srcu_struct(&head->srcu); in nvme_alloc_ns_head() 4069 cleanup_srcu_struct(&head->srcu); in nvme_alloc_ns_head() 4213 srcu_idx = srcu_read_lock(&ctrl->srcu); in nvme_find_get_ns() 4215 srcu_read_lock_held(&ctrl->srcu)) { in nvme_find_get_ns() 4225 srcu_read_unlock(&ctrl->srcu, srcu_idx); in nvme_ns_add_to_ctrl_list() 4316 synchronize_srcu(&ctrl->srcu); in nvme_alloc_ns() 4335 synchronize_srcu(&ctrl->srcu); in nvme_alloc_ns() 4355 synchronize_srcu(&ns->head->srcu); in nvme_alloc_ns() 4380 synchronize_srcu(&ns->head->srcu); in nvme_ns_remove() [all...] |
| /linux/drivers/reset/ |
| H A D | core.c | 58 struct srcu_struct srcu; member 191 synchronize_srcu(&rstc->srcu); in reset_controller_unregister() 385 guard(srcu)(&rstc->srcu); in reset_control_reset() 387 rcdev = srcu_dereference(rstc->rcdev, &rstc->srcu); in reset_control_reset() 506 guard(srcu)(&rstc->srcu); in reset_control_assert() 508 rcdev = srcu_dereference(rstc->rcdev, &rstc->srcu); in reset_control_assert() 602 guard(srcu)(&rstc->srcu); in reset_control_deassert() 604 rcdev = srcu_dereference(rstc->rcdev, &rstc->srcu); in reset_control_deassert() 682 guard(srcu)(&rstc->srcu); in reset_control_status() 684 rcdev = srcu_dereference(rstc->rcdev, &rstc->srcu); in reset_control_status() [all …]
|
| /linux/arch/x86/kvm/mmu/ |
| H 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() 347 idx = srcu_read_lock(&kvm->srcu); in kvm_write_track_add_gfn() 351 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_add_gfn() 359 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_add_gfn() 377 idx = srcu_read_lock(&kvm->srcu); in kvm_write_track_remove_gfn() 381 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_remove_gfn() 389 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_remove_gfn()
|
| /linux/drivers/net/wireless/microchip/wilc1000/ |
| H A D | netdev.c | 140 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_wlan_get_num_conn_ifcs() 145 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_wlan_get_num_conn_ifcs() 154 srcu_idx = srcu_read_lock(&wl->srcu); in wilc_wake_tx_queues() 159 srcu_read_unlock(&wl->srcu, srcu_idx); in wilc_wake_tx_queues() 673 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_set_mac_addr() 678 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr() 681 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr() 685 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr() 776 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_mac_xmit() 781 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_mac_xmit() [all …]
|
| H A D | cfg80211.c | 243 srcu_idx = srcu_read_lock(&wl->srcu); in set_channel() 246 srcu_read_unlock(&wl->srcu, srcu_idx); in set_channel() 257 srcu_read_unlock(&wl->srcu, srcu_idx); in set_channel() 804 srcu_idx = srcu_read_lock(&wl->srcu); in set_wiphy_params() 859 srcu_read_unlock(&wl->srcu, srcu_idx); in set_wiphy_params() 1544 srcu_idx = srcu_read_lock(&wl->srcu); in add_virtual_intf() 1549 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() 1555 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() 1563 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() 1568 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() [all …]
|
| /linux/arch/arm64/kvm/ |
| H 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/rust/kernel/sync/ |
| H A D | srcu.rs | 75 srcu: self, in read_lock() 153 srcu: &'a Srcu, field 169 unsafe { bindings::srcu_read_unlock(self.srcu.inner.get(), self.idx) }; in drop()
|
| /linux/include/linux/ |
| H 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, 0), \
|
| /linux/drivers/hid/bpf/ |
| H A D | hid_bpf_dispatch.c | 108 idx = srcu_read_lock(&hdev->bpf.srcu); in dispatch_hid_bpf_raw_requests() 110 srcu_read_lock_held(&hdev->bpf.srcu)) { in dispatch_hid_bpf_raw_requests() 121 srcu_read_unlock(&hdev->bpf.srcu, idx); in dispatch_hid_bpf_raw_requests() 145 idx = srcu_read_lock(&hdev->bpf.srcu); in dispatch_hid_bpf_output_report() 147 srcu_read_lock_held(&hdev->bpf.srcu)) { in dispatch_hid_bpf_output_report() 158 srcu_read_unlock(&hdev->bpf.srcu, idx); in dispatch_hid_bpf_output_report() 649 synchronize_srcu(&hdev->bpf.srcu); in hid_bpf_destroy_device() 650 cleanup_srcu_struct(&hdev->bpf.srcu); in hid_bpf_destroy_device() 658 return init_srcu_struct(&hdev->bpf.srcu); in hid_bpf_device_init()
|
| /linux/tools/memory-model/Documentation/ |
| H A D | herd-representation.txt | 59 | srcu_read_lock | R[srcu-lock] | 61 | srcu_read_unlock | W[srcu-unlock] | 63 | synchronize_srcu | SRCU[sync-srcu] | 64 | smp_mb__after_srcu_read_unlock | F[after-srcu-read-unlock] |
|
| /linux/arch/powerpc/kvm/ |
| H 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() 844 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_h_svm_init_done() 867 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_h_svm_init_done() 891 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_share_page() 928 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_share_page() 961 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_h_svm_page_in() 988 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_h_svm_page_in() [all …]
|
| H A D | book3s_64_mmu_hv.c | 447 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvmppc_hv_emulate_mmio() 450 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvmppc_hv_emulate_mmio() 745 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_rmap_reset() 758 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_rmap_reset() 1137 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_pin_guest_page() 1146 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_pin_guest_page() 1154 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_pin_guest_page() 1173 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_unpin_guest_page() 1177 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_unpin_guest_page() 1248 int srcu_idx = srcu_read_lock(&kvm->srcu); in resize_hpt_rehash_hpte() [all …]
|
| /linux/drivers/gpio/ |
| H A D | gpiolib.c | 176 scoped_guard(srcu, &gpio_devices_srcu) { in gpio_to_desc() 429 lockdep_assert_held(&gc->gpiodev->srcu); in gpiochip_get_direction() 584 guard(srcu)(&gpio_devices_srcu); in gpio_name_to_desc() 588 guard(srcu)(&gdev->srcu); in gpio_name_to_desc() 590 gc = srcu_dereference(gdev->chip, &gdev->srcu); in gpio_name_to_desc() 904 cleanup_srcu_struct(&gdev->srcu); in gpiodev_release() 1090 guard(srcu)(&gpio_devices_srcu); in gpiochip_setup_devs() 1094 guard(srcu)(&gdev->srcu); in gpiochip_setup_devs() 1096 gc = srcu_dereference(gdev->chip, &gdev->srcu); in gpiochip_setup_devs() 1199 ret = init_srcu_struct(&gdev->srcu); in gpiochip_add_data_with_key() [all …]
|
| H A D | gpiolib-cdev.c | 214 guard(srcu)(&lh->gdev->srcu); in linehandle_ioctl() 1449 guard(srcu)(&lr->gdev->srcu); in linereq_ioctl() 1480 guard(srcu)(&lr->gdev->srcu); in linereq_poll() 1502 guard(srcu)(&lr->gdev->srcu); in linereq_read() 1776 guard(srcu)(&le->gdev->srcu); in lineevent_poll() 1814 guard(srcu)(&le->gdev->srcu); in lineevent_read() 1896 guard(srcu)(&le->gdev->srcu); in lineevent_ioctl() 2195 scoped_guard(srcu, &desc->gdev->desc_srcu) { in gpio_desc_to_lineinfo() 2413 guard(srcu)(&gdev->srcu); in gpio_ioctl() 2475 scoped_guard(srcu, &ctx->gdev->srcu) { in lineinfo_changed_func() [all …]
|
| /linux/Documentation/virt/kvm/ |
| H A D | locking.rst | 40 - ``synchronize_srcu(&kvm->srcu)`` is called inside critical sections 42 be taken inside a kvm->srcu read-side critical section; that is, the 45 srcu_read_lock(&kvm->srcu); 50 kvm->srcu read-side critical section, for example while processing 277 ``kvm->srcu`` 279 :Type: srcu lock 283 :Comment: The srcu read lock must be held while accessing memslots (e.g. 286 The srcu index can be stored in kvm_vcpu->srcu_idx per vcpu 294 in a ``kvm->srcu`` read-side critical section.
|
| /linux/rust/kernel/ |
| H A D | sync.rs | 24 pub mod srcu; module 42 pub use srcu::Srcu;
|
| /linux/kernel/ |
| H A D | notifier.c | 518 synchronize_srcu(&nh->srcu); in srcu_notifier_chain_unregister() 545 idx = srcu_read_lock(&nh->srcu); in srcu_notifier_call_chain() 547 srcu_read_unlock(&nh->srcu, idx); in srcu_notifier_call_chain() 567 if (init_srcu_struct(&nh->srcu) < 0) in srcu_init_notifier_head()
|
| /linux/arch/loongarch/kvm/intc/ |
| H A D | ipi.c | 136 idx = srcu_read_lock(&vcpu->kvm->srcu); in send_ipi_data() 138 srcu_read_unlock(&vcpu->kvm->srcu, idx); in send_ipi_data() 152 idx = srcu_read_lock(&vcpu->kvm->srcu); in send_ipi_data() 154 srcu_read_unlock(&vcpu->kvm->srcu, idx); in send_ipi_data()
|
| /linux/tools/testing/selftests/rcutorture/configs/rcu/ |
| H A D | SRCU-T.boot | 1 rcutorture.torture_type=srcu
|