/linux/Documentation/translations/zh_CN/core-api/ |
A D | xarray.rst | 161 内部使用xa_lock: 185 假设进入时持有xa_lock: 194 如果你想利用锁来保护你存储在XArray中的数据结构,你可以在调用xa_load()之前调用xa_lock(),然后在 224 xa_lock(&foo->array); 233 上面的例子还显示了一个常见的模式,即希望在存储端扩展xa_lock的覆盖范围,以保护与数组相关的一些统计 237 在进程上下文中使用xa_lock_irq(),在中断处理程序中使用xa_lock()。一些更常见的模式有一些辅助函数, 241 意味着你有权使用像__xa_erase()这样的函数而不占用xa_lock;xa_lock是用来进行lockdep验证的,将来也 251 你需要在修改数组的时候使用xa_lock。在对数组进行只读操作时,你可以选择使用xa_lock或RCU锁。你可以在 265 存在xa_state中供下一次尝试。这个想法是,你拿着xa_lock,尝试操作,然后放弃锁。该操作试图在持有锁的情 293 - 这个条目目前正在被一个拥有xa_lock的线程修改。在这个RCU周期结束时,包含该条目的节点可能会被释放。 [all …]
|
/linux/include/linux/ |
A D | xarray.h | 295 spinlock_t xa_lock; member 302 .xa_lock = __SPIN_LOCK_UNLOCKED(name.xa_lock), \ 378 spin_lock_init(&xa->xa_lock); in xa_init_flags() 530 #define xa_lock(xa) spin_lock(&(xa)->xa_lock) macro 689 xa_lock(xa); in xa_cmpxchg() 772 xa_lock(xa); in xa_insert() 859 xa_lock(xa); in xa_alloc() 950 xa_lock(xa); in xa_alloc_cyclic() 1167 lockdep_is_held(&xa->xa_lock)); in xa_head() 1174 lockdep_is_held(&xa->xa_lock)); in xa_head_locked() [all …]
|
A D | idr.h | 101 #define idr_lock(idr) xa_lock(&(idr)->idr_rt)
|
A D | backing-dev.h | 271 !lockdep_is_held(&inode->i_mapping->i_pages.xa_lock) && in inode_to_wb()
|
/linux/tools/testing/radix-tree/ |
A D | regression1.c | 128 xa_lock(&mt_tree); in regression1_fn() 133 xa_lock(&mt_tree); in regression1_fn() 137 xa_lock(&mt_tree); in regression1_fn() 145 xa_lock(&mt_tree); in regression1_fn()
|
/linux/drivers/infiniband/core/ |
A D | ib_core_uverbs.c | 125 xa_lock(&ucontext->mmap_xa); in rdma_user_mmap_entry_get_pgoff() 190 xa_lock(&ucontext->mmap_xa); in rdma_user_mmap_entry_free() 235 xa_lock(&entry->ucontext->mmap_xa); in rdma_user_mmap_entry_remove() 287 xa_lock(&ucontext->mmap_xa); in rdma_user_mmap_entry_insert_range()
|
A D | restrack.c | 119 xa_lock(&rt->xa); in rdma_restrack_count() 290 xa_lock(&rt->xa); in rdma_restrack_get_byid()
|
A D | counters.c | 290 xa_lock(&rt->xa); in rdma_get_counter_auto_mode() 402 xa_lock(&rt->xa); in get_running_counters_hwstat_sum() 417 xa_lock(&rt->xa); in get_running_counters_hwstat_sum()
|
A D | ucma.c | 142 xa_lock(&ctx_table); in ucma_get_ctx() 358 xa_lock(&ctx_table); in ucma_event_handler() 602 xa_lock(&ctx_table); in ucma_destroy_id() 1564 xa_lock(&multicast_table); in ucma_leave_multicast() 1637 xa_lock(&ctx_table); in ucma_migrate_id()
|
A D | nldev.c | 774 xa_lock(&rt->xa); in fill_res_srq_qps() 899 xa_lock(&rt->xa); in fill_stat_counter_qps() 1550 xa_lock(&rt->xa); in res_get_common_dumpit() 1584 again: xa_lock(&rt->xa); in res_get_common_dumpit()
|
/linux/fs/erofs/ |
A D | utils.c | 90 xa_lock(&sbi->managed_pslots); in erofs_insert_workgroup() 168 xa_lock(&sbi->managed_pslots); in erofs_shrink_workstation() 178 xa_lock(&sbi->managed_pslots); in erofs_shrink_workstation()
|
/linux/Documentation/core-api/ |
A D | xarray.rst | 203 Takes xa_lock internally: 227 Assumes xa_lock held on entry: 237 that you are storing in the XArray, you can call xa_lock() 272 xa_lock(&foo->array); 283 coverage of the xa_lock on the store side to protect some statistics 288 context, or xa_lock_irq() in process context and xa_lock() 297 the xa_lock; the xa_lock is used for lockdep validation and will be used 311 to use the xa_lock while modifying the array. You can choose whether 312 to use the xa_lock or the RCU lock while doing read-only operations on 336 the xa_lock, attempt the operation and drop the lock. The operation [all …]
|
/linux/arch/arm64/kernel/ |
A D | hibernate.c | 251 xa_lock(&mte_pages); in swsusp_mte_free_storage() 302 xa_lock(&mte_pages); in swsusp_mte_restore_tags()
|
/linux/arch/arm64/mm/ |
A D | mteswap.c | 86 xa_lock(&mte_pages); in mte_invalidate_tags_area()
|
/linux/drivers/infiniband/hw/mlx4/ |
A D | cm.c | 365 xa_lock(&sriov->xa_rej_tmout); in alloc_rej_tmout() 410 xa_lock(&sriov->xa_rej_tmout); in lookup_rej_tmout_slave() 500 xa_lock(&sriov->xa_rej_tmout); in rej_tmout_xa_cleanup()
|
/linux/lib/ |
A D | xarray.c | 325 __must_hold(xas->xa->xa_lock) in __xas_nomem() 1510 xa_lock(xa); in xa_erase() 1574 xa_lock(xa); in xa_store() 1965 xa_lock(xa); in xa_set_mark() 1983 xa_lock(xa); in xa_clear_mark()
|
/linux/drivers/infiniband/hw/mlx5/ |
A D | odp.c | 453 xa_lock(&imr->implicit_children); in implicit_get_child_mr() 625 xa_lock(&imr->implicit_children); in pagefault_implicit_mr() 829 xa_lock(&dev->odp_mkeys); in pagefault_single_data_segment() 1692 xa_lock(&dev->odp_mkeys); in get_prefetchable_mr()
|
A D | srq_cmd.c | 740 xa_lock(&table->array); in srq_event_notifier()
|
A D | cq.c | 549 xa_lock(&dev->sig_mrs); in mlx5_poll_one()
|
/linux/drivers/infiniband/hw/hns/ |
A D | hns_roce_srq.c | 17 xa_lock(&srq_table->xa); in hns_roce_srq_event()
|
/linux/drivers/vfio/ |
A D | vfio.c | 114 xa_lock(&vfio_device_set_xa); in vfio_assign_device_set() 127 xa_lock(&vfio_device_set_xa); in vfio_assign_device_set() 163 xa_lock(&vfio_device_set_xa); in vfio_release_device_set()
|
/linux/drivers/gpu/drm/i915/gt/uc/ |
A D | intel_guc_submission.c | 1075 xa_lock(&guc->context_lookup); in scrub_guc_desc_for_outstanding_g2h() 1354 xa_lock(&guc->context_lookup); in intel_guc_submission_reset() 1447 xa_lock(&guc->context_lookup); in intel_guc_submission_cancel_requests() 3796 xa_lock(&guc->context_lookup); in intel_guc_find_hung_context() 3801 xa_lock(&guc->context_lookup); in intel_guc_find_hung_context() 3845 xa_lock(&guc->context_lookup); in intel_guc_dump_active_requests()
|
/linux/drivers/gpu/drm/tegra/ |
A D | submit.c | 121 xa_lock(&context->mappings); in tegra_drm_mapping_get()
|
/linux/drivers/infiniband/hw/qedr/ |
A D | qedr_iw_cm.c | 522 xa_lock(&dev->qps); in qedr_iw_load_qp()
|
/linux/mm/ |
A D | huge_memory.c | 2424 xa_lock(&swap_cache->i_pages); in __split_huge_page() 2690 xa_lock(&mapping->i_pages); in split_huge_page_to_list()
|