Searched refs:umem_odp (Results 1 – 5 of 5) sorted by relevance
/linux-6.1.9/drivers/infiniband/core/ |
D | umem_odp.c | 50 static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp, in ib_init_umem_odp() argument 55 umem_odp->umem.is_odp = 1; in ib_init_umem_odp() 56 mutex_init(&umem_odp->umem_mutex); in ib_init_umem_odp() 58 if (!umem_odp->is_implicit_odp) { in ib_init_umem_odp() 59 size_t page_size = 1UL << umem_odp->page_shift; in ib_init_umem_odp() 64 start = ALIGN_DOWN(umem_odp->umem.address, page_size); in ib_init_umem_odp() 65 if (check_add_overflow(umem_odp->umem.address, in ib_init_umem_odp() 66 (unsigned long)umem_odp->umem.length, in ib_init_umem_odp() 73 ndmas = (end - start) >> umem_odp->page_shift; in ib_init_umem_odp() 78 umem_odp->pfn_list = kvcalloc( in ib_init_umem_odp() [all …]
|
D | Makefile | 44 ib_uverbs-$(CONFIG_INFINIBAND_ON_DEMAND_PAGING) += umem_odp.o
|
/linux-6.1.9/include/rdma/ |
D | ib_umem_odp.h | 53 static inline unsigned long ib_umem_start(struct ib_umem_odp *umem_odp) in ib_umem_start() argument 55 return umem_odp->notifier.interval_tree.start; in ib_umem_start() 59 static inline unsigned long ib_umem_end(struct ib_umem_odp *umem_odp) in ib_umem_end() argument 61 return umem_odp->notifier.interval_tree.last + 1; in ib_umem_end() 64 static inline size_t ib_umem_odp_num_pages(struct ib_umem_odp *umem_odp) in ib_umem_odp_num_pages() argument 66 return (ib_umem_end(umem_odp) - ib_umem_start(umem_odp)) >> in ib_umem_odp_num_pages() 67 umem_odp->page_shift; in ib_umem_odp_num_pages() 94 void ib_umem_odp_release(struct ib_umem_odp *umem_odp); 96 int ib_umem_odp_map_dma_and_lock(struct ib_umem_odp *umem_odp, u64 start_offset, 99 void ib_umem_odp_unmap_dma_pages(struct ib_umem_odp *umem_odp, u64 start_offset, [all …]
|
/linux-6.1.9/drivers/infiniband/hw/mlx5/ |
D | odp.c | 230 struct ib_umem_odp *umem_odp = in mlx5_ib_invalidate_range() local 245 mutex_lock(&umem_odp->umem_mutex); in mlx5_ib_invalidate_range() 251 if (!umem_odp->npages) in mlx5_ib_invalidate_range() 253 mr = umem_odp->private; in mlx5_ib_invalidate_range() 255 start = max_t(u64, ib_umem_start(umem_odp), range->start); in mlx5_ib_invalidate_range() 256 end = min_t(u64, ib_umem_end(umem_odp), range->end); in mlx5_ib_invalidate_range() 264 for (addr = start; addr < end; addr += BIT(umem_odp->page_shift)) { in mlx5_ib_invalidate_range() 265 idx = (addr - ib_umem_start(umem_odp)) >> umem_odp->page_shift; in mlx5_ib_invalidate_range() 272 if (umem_odp->dma_list[idx] & in mlx5_ib_invalidate_range() 307 ib_umem_odp_unmap_dma_pages(umem_odp, start, end); in mlx5_ib_invalidate_range() [all …]
|
/linux-6.1.9/Documentation/driver-api/ |
D | infiniband.rst | 43 .. kernel-doc:: drivers/infiniband/core/umem_odp.c
|