/linux-6.6.21/tools/memory-model/ |
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 …]
|
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) |
|
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-6.6.21/mm/ |
D | mmu_notifier.c | 23 DEFINE_STATIC_SRCU(srcu); 309 id = srcu_read_lock(&srcu); in mn_hlist_release() 311 srcu_read_lock_held(&srcu)) in mn_hlist_release() 334 srcu_read_unlock(&srcu, id); in mn_hlist_release() 345 synchronize_srcu(&srcu); in mn_hlist_release() 372 id = srcu_read_lock(&srcu); in __mmu_notifier_clear_flush_young() 375 srcu_read_lock_held(&srcu)) { in __mmu_notifier_clear_flush_young() 380 srcu_read_unlock(&srcu, id); in __mmu_notifier_clear_flush_young() 392 id = srcu_read_lock(&srcu); in __mmu_notifier_clear_young() 395 srcu_read_lock_held(&srcu)) { in __mmu_notifier_clear_young() [all …]
|
/linux-6.6.21/arch/sh/kernel/ |
D | traps_32.c | 108 unsigned char __user *srcu, *dstu; in handle_unaligned_ins() local 130 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins() 131 srcu += regs->regs[0]; in handle_unaligned_ins() 138 if (ma->from(dst, srcu, count)) in handle_unaligned_ins() 181 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins() 182 srcu += (instruction & 0x000F) << 2; in handle_unaligned_ins() 186 if (ma->from(dst, srcu, 4)) in handle_unaligned_ins() 192 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins() 201 if (ma->from(dst, srcu, count)) in handle_unaligned_ins() 223 srcu = (unsigned char __user *)*rm; in handle_unaligned_ins() [all …]
|
/linux-6.6.21/arch/x86/kvm/mmu/ |
D | page_track.c | 83 srcu_read_lock_held(&kvm->srcu)); in __kvm_write_track_add_gfn() 106 srcu_read_lock_held(&kvm->srcu)); in __kvm_write_track_remove_gfn() 260 idx = srcu_read_lock(&kvm->srcu); in kvm_write_track_add_gfn() 264 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_add_gfn() 272 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_add_gfn() 290 idx = srcu_read_lock(&kvm->srcu); in kvm_write_track_remove_gfn() 294 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_remove_gfn() 302 srcu_read_unlock(&kvm->srcu, idx); in kvm_write_track_remove_gfn()
|
/linux-6.6.21/drivers/net/wireless/microchip/wilc1000/ |
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() 166 srcu_idx = srcu_read_lock(&wl->srcu); in wilc_txq_task() 172 srcu_read_unlock(&wl->srcu, srcu_idx); in wilc_txq_task() 655 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_set_mac_addr() 660 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr() 663 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr() 667 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_set_mac_addr() 758 srcu_idx = srcu_read_lock(&wilc->srcu); in wilc_mac_xmit() 763 srcu_read_unlock(&wilc->srcu, srcu_idx); in wilc_mac_xmit() [all …]
|
D | cfg80211.c | 244 srcu_idx = srcu_read_lock(&wl->srcu); in set_channel() 247 srcu_read_unlock(&wl->srcu, srcu_idx); in set_channel() 258 srcu_read_unlock(&wl->srcu, srcu_idx); in set_channel() 815 srcu_idx = srcu_read_lock(&wl->srcu); in set_wiphy_params() 870 srcu_read_unlock(&wl->srcu, srcu_idx); in set_wiphy_params() 1550 srcu_idx = srcu_read_lock(&wl->srcu); in add_virtual_intf() 1555 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() 1561 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() 1569 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() 1574 srcu_read_unlock(&wl->srcu, srcu_idx); in add_virtual_intf() [all …]
|
/linux-6.6.21/arch/arm64/kvm/ |
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-6.6.21/include/linux/ |
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-6.6.21/arch/arm64/include/asm/ |
D | kvm_mmu.h | 257 int srcu_idx = srcu_read_lock(&kvm->srcu); in kvm_read_guest_lock() 260 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvm_read_guest_lock() 268 int srcu_idx = srcu_read_lock(&kvm->srcu); in kvm_write_guest_lock() 271 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvm_write_guest_lock()
|
/linux-6.6.21/arch/powerpc/kvm/ |
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 …]
|
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() 762 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_rmap_reset() 775 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_rmap_reset() 1166 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_pin_guest_page() 1175 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_pin_guest_page() 1183 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_pin_guest_page() 1202 srcu_idx = srcu_read_lock(&kvm->srcu); in kvmppc_unpin_guest_page() 1206 srcu_read_unlock(&kvm->srcu, srcu_idx); in kvmppc_unpin_guest_page() 1277 int srcu_idx = srcu_read_lock(&kvm->srcu); in resize_hpt_rehash_hpte() [all …]
|
/linux-6.6.21/drivers/gpu/drm/i915/gt/ |
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-6.6.21/arch/x86/kernel/cpu/sgx/ |
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()
|
D | driver.c | 33 ret = init_srcu_struct(&encl->srcu); in sgx_open() 72 synchronize_srcu(&encl->srcu); in sgx_release()
|
/linux-6.6.21/drivers/nvme/host/ |
D | multipath.c | 212 srcu_idx = srcu_read_lock(&head->srcu); in nvme_mpath_revalidate_paths() 217 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_mpath_revalidate_paths() 343 ns = srcu_dereference(head->current_path[node], &head->srcu); in nvme_find_path() 390 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_submit_bio() 410 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_submit_bio() 433 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_report_zones() 437 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_report_zones() 594 srcu_idx = srcu_read_lock(&head->srcu); in nvme_mpath_set_live() 597 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_mpath_set_live() 601 synchronize_srcu(&head->srcu); in nvme_mpath_set_live()
|
D | ioctl.c | 805 __releases(&head->srcu) in nvme_ns_head_ctrl_ioctl() 811 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_ctrl_ioctl() 831 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_ioctl() 847 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_ioctl() 862 srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_chr_ioctl() 873 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_chr_ioctl() 882 int srcu_idx = srcu_read_lock(&head->srcu); in nvme_ns_head_chr_uring_cmd() 888 srcu_read_unlock(&head->srcu, srcu_idx); in nvme_ns_head_chr_uring_cmd()
|
/linux-6.6.21/Documentation/virt/kvm/ |
D | locking.rst | 29 - ``synchronize_srcu(&kvm->srcu)`` is called inside critical sections 31 be taken inside a kvm->srcu read-side critical section; that is, the 34 srcu_read_lock(&kvm->srcu); 39 kvm->srcu read-side critical section, for example while processing 259 ``kvm->srcu`` 261 :Type: srcu lock 265 :Comment: The srcu read lock must be held while accessing memslots (e.g. 268 The srcu index can be stored in kvm_vcpu->srcu_idx per vcpu 276 in a ``kvm->srcu`` read-side critical section.
|
/linux-6.6.21/kernel/ |
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()
|
/linux-6.6.21/tools/testing/selftests/rcutorture/configs/rcu/ |
D | SRCU-T.boot | 1 rcutorture.torture_type=srcu
|
D | SRCU-N.boot | 1 rcutorture.torture_type=srcu
|
/linux-6.6.21/drivers/pci/controller/ |
D | vmd.c | 120 struct srcu_struct srcu; member 291 synchronize_srcu(&vmdirq->irq->srcu); in vmd_msi_free() 682 idx = srcu_read_lock(&irqs->srcu); in vmd_irq() 685 srcu_read_unlock(&irqs->srcu, idx); in vmd_irq() 710 err = init_srcu_struct(&vmd->irqs[i].srcu); in vmd_alloc_irqs() 1038 cleanup_srcu_struct(&vmd->irqs[i].srcu); in vmd_cleanup_srcu()
|
/linux-6.6.21/arch/s390/kvm/ |
D | pci.c | 251 idx = srcu_read_lock(&kvm->srcu); in kvm_s390_pci_aif_enable() 254 srcu_read_unlock(&kvm->srcu, idx); in kvm_s390_pci_aif_enable() 266 idx = srcu_read_lock(&kvm->srcu); in kvm_s390_pci_aif_enable() 270 srcu_read_unlock(&kvm->srcu, idx); in kvm_s390_pci_aif_enable()
|
/linux-6.6.21/arch/x86/kvm/ |
D | xen.c | 46 int idx = srcu_read_lock(&kvm->srcu); in kvm_xen_shared_info_init() 112 srcu_read_unlock(&kvm->srcu, idx); in kvm_xen_shared_info_init() 719 idx = srcu_read_lock(&vcpu->kvm->srcu); in kvm_xen_vcpu_set_attr() 945 srcu_read_unlock(&vcpu->kvm->srcu, idx); in kvm_xen_vcpu_set_attr() 1177 idx = srcu_read_lock(&kvm->srcu); in wait_pending_event() 1200 srcu_read_unlock(&kvm->srcu, idx); in wait_pending_event() 1580 idx = srcu_read_lock(&kvm->srcu); in kvm_xen_set_evtchn_fast() 1651 srcu_read_unlock(&kvm->srcu, idx); in kvm_xen_set_evtchn_fast() 1706 idx = srcu_read_lock(&kvm->srcu); in kvm_xen_set_evtchn() 1708 srcu_read_unlock(&kvm->srcu, idx); in kvm_xen_set_evtchn() [all …]
|