| /dpdk/lib/eal/common/ |
| H A D | eal_common_memory.c | 211 msl->heap = heap; in eal_memseg_list_init_named() 259 msl->len = mem_sz; in eal_memseg_list_alloc() 299 if (msl == NULL) in virt2memseg() 311 ms_idx = RTE_PTR_DIFF(addr, msl->base_va) / msl->page_sz; in virt2memseg() 334 return msl; in virt2memseg_list() 398 return virt2memseg(addr, msl != NULL ? msl : in rte_mem_virt2memseg() 407 if (msl->external) in physmem_size() 410 *total_len += msl->memseg_arr.count * msl->page_sz; in physmem_size() 803 if (msl == NULL) { in rte_memseg_get_fd_thread_unsafe() 1047 if (rte_mem_unmap(msl->base_va, msl->len) != 0) in rte_eal_memory_detach() [all …]
|
| H A D | malloc_heap.c | 115 if (msl->external) in malloc_add_seg() 139 msl->socket_id); in malloc_add_seg() 875 msl = elem->msl; in malloc_heap_free() 1188 msl = tmp; in malloc_heap_create_external_seg() 1232 return msl; in malloc_heap_create_external_seg() 1247 if (msl->base_va == wa->va_addr && msl->len == wa->len) { in extseg_walk() 1275 return wa.msl; in malloc_heap_find_external_seg() 1286 memset(msl, 0, sizeof(*msl)); in malloc_heap_destroy_external_seg() 1296 memset(msl->base_va, 0, msl->len); in malloc_heap_add_external_memory() 1299 malloc_heap_add_memory(heap, msl, msl->base_va, msl->len, false); in malloc_heap_add_external_memory() [all …]
|
| H A D | rte_malloc.c | 380 ms = rte_mem_virt2memseg(addr, elem->msl); in rte_malloc_virt2iova() 410 struct rte_memseg_list *msl; in rte_malloc_heap_memory_add() local 444 if (msl == NULL) { in rte_malloc_heap_memory_add() 451 msl->heap = 1; /* mark it as heap segment */ in rte_malloc_heap_memory_add() 464 struct rte_memseg_list *msl; in rte_malloc_heap_memory_remove() local 490 if (msl == NULL) { in rte_malloc_heap_memory_remove() 501 ret = malloc_heap_destroy_external_seg(msl); in rte_malloc_heap_memory_remove() 513 struct rte_memseg_list *msl; in sync_memory() local 541 if (msl == NULL) { in sync_memory() 547 ret = rte_fbarray_attach(&msl->memseg_arr); in sync_memory() [all …]
|
| H A D | malloc_elem.c | 43 page_sz = (size_t)elem->msl->page_sz; in malloc_elem_find_max_iova_contig() 58 if (!elem->msl->external && in malloc_elem_find_max_iova_contig() 65 ms = rte_mem_virt2memseg(cur_page, elem->msl); in malloc_elem_find_max_iova_contig() 93 ms = rte_mem_virt2memseg(contig_seg_start, elem->msl); in malloc_elem_find_max_iova_contig() 125 struct rte_memseg_list *msl, size_t size, in malloc_elem_init() argument 129 elem->msl = msl; in malloc_elem_init() 207 elem_check_phys_contig(const struct rte_memseg_list *msl, in elem_check_phys_contig() argument 210 return eal_memalloc_is_contig(msl, start, size); in elem_check_phys_contig() 263 if (!elem_check_phys_contig(elem->msl, in elem_start_pt() 345 elem->next->msl == elem->msl && in next_elem_is_adjacent() [all …]
|
| H A D | eal_common_memalloc.c | 68 eal_memalloc_is_contig(const struct rte_memseg_list *msl, void *start, in eal_memalloc_is_contig() argument 72 size_t pgsz = (size_t)msl->page_sz; in eal_memalloc_is_contig() 78 if (rte_eal_iova_mode() == RTE_IOVA_VA && !msl->external) in eal_memalloc_is_contig() 117 start_seg = RTE_PTR_DIFF(aligned_start, msl->base_va) / in eal_memalloc_is_contig() 119 end_seg = RTE_PTR_DIFF(aligned_end, msl->base_va) / in eal_memalloc_is_contig() 127 ms = rte_fbarray_get(&msl->memseg_arr, start_seg); in eal_memalloc_is_contig() 137 ms = rte_fbarray_get(&msl->memseg_arr, cur_seg); in eal_memalloc_is_contig()
|
| H A D | eal_common_dynmem.c | 28 struct rte_memseg_list *msl; in eal_dynmem_memseg_lists_init() local 186 msl = &mcfg->memsegs[msl_idx++]; in eal_dynmem_memseg_lists_init() 188 if (eal_memseg_list_init(msl, pagesz, n_segs, in eal_dynmem_memseg_lists_init() 192 if (eal_memseg_list_alloc(msl, 0)) { in eal_dynmem_memseg_lists_init() 206 hugepage_count_walk(const struct rte_memseg_list *msl, void *arg) in hugepage_count_walk() argument 210 if (msl->page_sz != hpi->hugepage_sz) in hugepage_count_walk() 213 hpi->num_pages[msl->socket_id] += msl->memseg_arr.len; in hugepage_count_walk()
|
| H A D | eal_private.h | 267 eal_memseg_list_init_named(struct rte_memseg_list *msl, const char *name, 280 eal_memseg_list_init(struct rte_memseg_list *msl, uint64_t page_sz, 295 eal_memseg_list_alloc(struct rte_memseg_list *msl, int reserve_flags); 308 eal_memseg_list_populate(struct rte_memseg_list *msl, void *addr, int n_segs);
|
| H A D | eal_common_memzone.c | 196 mz->hugepage_sz = elem->msl->page_sz; in memzone_reserve_aligned_thread_unsafe() 197 mz->socket_id = elem->msl->socket_id; in memzone_reserve_aligned_thread_unsafe() 330 struct rte_memseg_list *msl = NULL; in dump_memzone() local 349 msl = rte_mem_virt2memseg_list(mz->addr); in dump_memzone() 350 if (!msl) { in dump_memzone() 359 ms_idx = RTE_PTR_DIFF(mz->addr, msl->base_va) / page_sz; in dump_memzone() 360 ms = rte_fbarray_get(&msl->memseg_arr, ms_idx); in dump_memzone()
|
| H A D | malloc_heap.h | 59 malloc_heap_destroy_external_seg(struct rte_memseg_list *msl); 63 struct rte_memseg_list *msl);
|
| /dpdk/lib/eal/freebsd/ |
| H A D | eal_memory.c | 68 struct rte_memseg_list *msl; in rte_eal_hugepage_init() local 73 msl = &mcfg->memsegs[0]; in rte_eal_hugepage_init() 92 msl->base_va = addr; in rte_eal_hugepage_init() 93 msl->len = mem_sz; in rte_eal_hugepage_init() 117 struct rte_memseg_list *msl; in rte_eal_hugepage_init() local 147 arr = &msl->memseg_arr; in rte_eal_hugepage_init() 180 arr = &msl->memseg_arr; in rte_eal_hugepage_init() 239 if (msl->external) in attach_segment() 338 struct rte_memseg_list *msl; in memseg_primary_init() local 443 struct rte_memseg_list *msl; in memseg_secondary_init() local [all …]
|
| /dpdk/lib/eal/include/generic/ |
| H A D | rte_mcslock.h | 47 rte_mcslock_lock(rte_mcslock_t **msl, rte_mcslock_t *me) in rte_mcslock_lock() argument 61 prev = __atomic_exchange_n(msl, me, __ATOMIC_ACQ_REL); in rte_mcslock_lock() 99 rte_mcslock_unlock(rte_mcslock_t **msl, rte_mcslock_t *me) in rte_mcslock_unlock() argument 107 if (likely(__atomic_compare_exchange_n(msl, &save_me, NULL, 0, in rte_mcslock_unlock() 140 rte_mcslock_trylock(rte_mcslock_t **msl, rte_mcslock_t *me) in rte_mcslock_trylock() argument 154 return __atomic_compare_exchange_n(msl, &expected, me, 0, in rte_mcslock_trylock() 167 rte_mcslock_is_locked(rte_mcslock_t *msl) in rte_mcslock_is_locked() argument 169 return (__atomic_load_n(&msl, __ATOMIC_RELAXED) != NULL); in rte_mcslock_is_locked()
|
| /dpdk/drivers/net/mlx4/ |
| H A D | mlx4_mr.c | 44 const struct rte_memseg_list *msl; member 293 if (mr->msl == NULL) { in mr_find_next_chunk() 314 msl = mr->msl; in mr_find_next_chunk() 524 data->msl = msl; in mr_find_contig_memsegs_cb() 595 const struct rte_memseg_list *msl; in mlx4_mr_create_primary() local 649 msl = data.msl; in mlx4_mr_create_primary() 654 ms_n = len / msl->page_sz; in mlx4_mr_create_primary() 673 mr->msl = msl; in mlx4_mr_create_primary() 699 if (len > msl->page_sz && in mlx4_mr_create_primary() 719 MLX4_ASSERT(data.msl == data_re.msl); in mlx4_mr_create_primary() [all …]
|
| /dpdk/drivers/common/mlx5/ |
| H A D | mlx5_common_mr.c | 343 if (mr->msl == NULL) { in mr_find_next_chunk() 362 msl = mr->msl; in mr_find_next_chunk() 583 data->msl = msl; in mr_find_contig_memsegs_cb() 707 MLX5_ASSERT(data.msl); in mlx5_mr_create_primary() 710 msl = data.msl; in mlx5_mr_create_primary() 716 ms_n = len / msl->page_sz; in mlx5_mr_create_primary() 731 mr->msl = msl; in mlx5_mr_create_primary() 756 if (len > msl->page_sz && in mlx5_mr_create_primary() 775 MLX5_ASSERT(data.msl == data_re.msl); in mlx5_mr_create_primary() 1369 page_size = msl != NULL ? msl->page_sz : rte_mem_page_size(); in mlx5_mempool_get_extmem_cb() [all …]
|
| H A D | mlx5_malloc.c | 69 mlx5_mem_check_msl(void *addr, struct rte_memseg_list *msl) in mlx5_mem_check_msl() argument 73 if (!msl) in mlx5_mem_check_msl() 75 start = msl->base_va; in mlx5_mem_check_msl() 76 end = RTE_PTR_ADD(start, msl->len); in mlx5_mem_check_msl()
|
| /dpdk/lib/eal/linux/ |
| H A D | eal_memory.c | 659 struct rte_memseg_list *msl; local 682 arr = &msl->memseg_arr; 813 memset(msl, 0, sizeof(*msl)); 951 if (msl->base_va != NULL) 1138 msl = &mcfg->memsegs[0]; 1443 if (msl->base_va == NULL) 1449 mem_sz = msl->len; 1451 msl->base_va = NULL; 1452 msl->heap = 0; 1572 if (msl == NULL) { [all …]
|
| H A D | eal_memalloc.c | 832 msl_idx = msl - mcfg->memsegs; in alloc_seg_walk() 966 msl_idx = msl - mcfg->memsegs; in free_seg_walk() 1391 if (msl->external) in sync_walk() 1394 msl_idx = msl - mcfg->memsegs; in sync_walk() 1442 if (msl->external) in secondary_msl_create_walk() 1445 msl_idx = msl - mcfg->memsegs; in secondary_msl_create_walk() 1474 if (msl->external) in secondary_msl_destroy_walk() 1477 msl_idx = msl - mcfg->memsegs; in secondary_msl_destroy_walk() 1559 if (msl->external) in fd_list_create_walk() 1563 len = msl->memseg_arr.len; in fd_list_create_walk() [all …]
|
| H A D | eal_vfio.c | 609 struct rte_memseg_list *msl; in vfio_mem_event_callback() local 613 msl = rte_mem_virt2memseg_list(addr); in vfio_mem_event_callback() 618 uint64_t page_sz = msl->page_sz; in vfio_mem_event_callback() 635 ms = rte_mem_virt2memseg(addr, msl); in vfio_mem_event_callback() 1378 if (msl->external) in type1_map_contig() 1392 if (msl->external && !msl->heap) in type1_map() 1560 vfio_spapr_map_walk(const struct rte_memseg_list *msl, in vfio_spapr_map_walk() argument 1566 if (msl->external && !msl->heap) in vfio_spapr_map_walk() 1592 uint64_t max = (uint64_t) msl->base_va + (uint64_t) msl->len; in vfio_spapr_size_walk() 1594 if (msl->external && !msl->heap) { in vfio_spapr_size_walk() [all …]
|
| /dpdk/lib/eal/windows/ |
| H A D | eal_memalloc.c | 179 alloc_seg_walk(const struct rte_memseg_list *msl, void *arg) in alloc_seg_walk() argument 188 if (msl->page_sz != wa->page_sz) in alloc_seg_walk() 190 if (msl->socket_id != wa->socket) in alloc_seg_walk() 193 page_sz = (size_t)msl->page_sz; in alloc_seg_walk() 195 msl_idx = msl - mcfg->memsegs; in alloc_seg_walk() 280 free_seg_walk(const struct rte_memseg_list *msl, void *arg) in free_seg_walk() argument 288 start_addr = (uintptr_t) msl->base_va; in free_seg_walk() 289 end_addr = start_addr + msl->len; in free_seg_walk() 295 msl_idx = msl - mcfg->memsegs; in free_seg_walk() 296 seg_idx = RTE_PTR_DIFF(wa->ms->addr, start_addr) / msl->page_sz; in free_seg_walk()
|
| H A D | eal_memory.c | 659 struct rte_memseg_list *msl; in eal_nohuge_init() local 671 msl = &mcfg->memsegs[0]; in eal_nohuge_init() 678 msl, "nohugemem", page_sz, n_segs, 0, true)) { in eal_nohuge_init() 690 msl->base_va = addr; in eal_nohuge_init() 691 msl->len = mem_sz; in eal_nohuge_init() 693 eal_memseg_list_populate(msl, addr, n_segs); in eal_nohuge_init()
|
| /dpdk/app/test/ |
| H A D | test_memory.c | 34 check_mem(const struct rte_memseg_list *msl __rte_unused, in check_mem() 46 check_seg_fds(const struct rte_memseg_list *msl, const struct rte_memseg *ms, in check_seg_fds() argument 53 if (msl->external) in check_seg_fds()
|
| /dpdk/lib/eal/include/ |
| H A D | rte_memory.h | 149 rte_mem_virt2memseg(const void *virt, const struct rte_memseg_list *msl); 169 typedef int (*rte_memseg_walk_t)(const struct rte_memseg_list *msl, 181 typedef int (*rte_memseg_contig_walk_t)(const struct rte_memseg_list *msl, 192 typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,
|
| /dpdk/drivers/net/virtio/virtio_user/ |
| H A D | vhost_vdpa.c | 316 vhost_vdpa_map_contig(const struct rte_memseg_list *msl, in vhost_vdpa_map_contig() argument 321 if (msl->external) in vhost_vdpa_map_contig() 328 vhost_vdpa_map(const struct rte_memseg_list *msl, const struct rte_memseg *ms, in vhost_vdpa_map() argument 334 if (msl->external && !msl->heap) in vhost_vdpa_map() 342 if (!msl->external && rte_eal_iova_mode() == RTE_IOVA_VA) in vhost_vdpa_map()
|
| H A D | vhost_kernel.c | 184 add_memseg_list(const struct rte_memseg_list *msl, void *arg) in add_memseg_list() argument 191 if (msl->external) in add_memseg_list() 197 start_addr = msl->base_va; in add_memseg_list() 198 len = msl->page_sz * msl->memseg_arr.len; in add_memseg_list()
|
| /dpdk/drivers/common/dpaax/ |
| H A D | dpaax_iova_table.c | 394 struct rte_memseg_list *msl; in dpaax_memevent_cb() local 403 msl = rte_mem_virt2memseg_list(addr); in dpaax_memevent_cb() 408 ms = rte_mem_virt2memseg(va, msl); in dpaax_memevent_cb() 440 dpaax_memevent_walk_memsegs(const struct rte_memseg_list *msl __rte_unused, in dpaax_memevent_walk_memsegs()
|
| /dpdk/drivers/bus/vmbus/linux/ |
| H A D | vmbus_uio.c | 123 find_max_end_va(const struct rte_memseg_list *msl, void *arg) in find_max_end_va() argument 125 size_t sz = msl->memseg_arr.len * msl->page_sz; in find_max_end_va() 126 void *end_va = RTE_PTR_ADD(msl->base_va, sz); in find_max_end_va()
|