Home
last modified time | relevance | path

Searched refs:buddy (Results 1 – 25 of 44) sorted by relevance

12

/openbmc/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/
H A Ddr_buddy.c10 int mlx5dr_buddy_init(struct mlx5dr_icm_buddy_mem *buddy, in mlx5dr_buddy_init() argument
15 buddy->max_order = max_order; in mlx5dr_buddy_init()
17 INIT_LIST_HEAD(&buddy->list_node); in mlx5dr_buddy_init()
19 buddy->bitmap = kcalloc(buddy->max_order + 1, in mlx5dr_buddy_init()
20 sizeof(*buddy->bitmap), in mlx5dr_buddy_init()
22 buddy->num_free = kcalloc(buddy->max_order + 1, in mlx5dr_buddy_init()
23 sizeof(*buddy->num_free), in mlx5dr_buddy_init()
26 if (!buddy->bitmap || !buddy->num_free) in mlx5dr_buddy_init()
31 for (i = 0; i <= buddy->max_order; ++i) { in mlx5dr_buddy_init()
32 unsigned int size = 1 << (buddy->max_order - i); in mlx5dr_buddy_init()
[all …]
H A Ddr_icm_pool.c199 static int dr_icm_buddy_get_ste_size(struct mlx5dr_icm_buddy_mem *buddy) in dr_icm_buddy_get_ste_size() argument
212 struct mlx5dr_icm_buddy_mem *buddy = chunk->buddy_mem; in dr_icm_chunk_ste_init() local
213 int ste_size = dr_icm_buddy_get_ste_size(buddy); in dr_icm_chunk_ste_init()
216 chunk->ste_arr = &buddy->ste_arr[index]; in dr_icm_chunk_ste_init()
217 chunk->miss_list = &buddy->miss_list[index]; in dr_icm_chunk_ste_init()
218 chunk->hw_ste_arr = buddy->hw_ste_arr + index * ste_size; in dr_icm_chunk_ste_init()
225 static int dr_icm_buddy_init_ste_cache(struct mlx5dr_icm_buddy_mem *buddy) in dr_icm_buddy_init_ste_cache() argument
228 mlx5dr_icm_pool_chunk_size_to_entries(buddy->pool->max_log_chunk_sz); in dr_icm_buddy_init_ste_cache()
230 buddy->ste_arr = kvcalloc(num_of_entries, in dr_icm_buddy_init_ste_cache()
232 if (!buddy->ste_arr) in dr_icm_buddy_init_ste_cache()
[all …]
H A Dmlx5dr.h192 int mlx5dr_buddy_init(struct mlx5dr_icm_buddy_mem *buddy,
194 void mlx5dr_buddy_cleanup(struct mlx5dr_icm_buddy_mem *buddy);
195 int mlx5dr_buddy_alloc_mem(struct mlx5dr_icm_buddy_mem *buddy,
198 void mlx5dr_buddy_free_mem(struct mlx5dr_icm_buddy_mem *buddy,
/openbmc/linux/drivers/infiniband/hw/mthca/
H A Dmthca_mr.c42 struct mthca_buddy *buddy; member
84 static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order) in mthca_buddy_alloc() argument
90 spin_lock(&buddy->lock); in mthca_buddy_alloc()
92 for (o = order; o <= buddy->max_order; ++o) in mthca_buddy_alloc()
93 if (buddy->num_free[o]) { in mthca_buddy_alloc()
94 m = 1 << (buddy->max_order - o); in mthca_buddy_alloc()
95 seg = find_first_bit(buddy->bits[o], m); in mthca_buddy_alloc()
100 spin_unlock(&buddy->lock); in mthca_buddy_alloc()
104 __clear_bit(seg, buddy->bits[o]); in mthca_buddy_alloc()
105 --buddy->num_free[o]; in mthca_buddy_alloc()
[all …]
/openbmc/linux/arch/arm64/kvm/hyp/nvhe/
H A Dpage_alloc.c56 struct hyp_page *buddy = __find_buddy_nocheck(pool, p, order); in __find_buddy_avail() local
58 if (!buddy || buddy->order != order || buddy->refcount) in __find_buddy_avail()
61 return buddy; in __find_buddy_avail()
98 struct hyp_page *buddy; in __hyp_attach_page() local
114 buddy = __find_buddy_avail(pool, p, order); in __hyp_attach_page()
115 if (!buddy) in __hyp_attach_page()
119 page_remove_from_list(buddy); in __hyp_attach_page()
120 buddy->order = HYP_NO_ORDER; in __hyp_attach_page()
121 p = min(p, buddy); in __hyp_attach_page()
134 struct hyp_page *buddy; in __hyp_extract_page() local
[all …]
/openbmc/linux/drivers/net/ethernet/mellanox/mlx4/
H A Dmr.c46 static u32 mlx4_buddy_alloc(struct mlx4_buddy *buddy, int order) in mlx4_buddy_alloc() argument
52 spin_lock(&buddy->lock); in mlx4_buddy_alloc()
54 for (o = order; o <= buddy->max_order; ++o) in mlx4_buddy_alloc()
55 if (buddy->num_free[o]) { in mlx4_buddy_alloc()
56 m = 1 << (buddy->max_order - o); in mlx4_buddy_alloc()
57 seg = find_first_bit(buddy->bits[o], m); in mlx4_buddy_alloc()
62 spin_unlock(&buddy->lock); in mlx4_buddy_alloc()
66 clear_bit(seg, buddy->bits[o]); in mlx4_buddy_alloc()
67 --buddy->num_free[o]; in mlx4_buddy_alloc()
72 set_bit(seg ^ 1, buddy->bits[o]); in mlx4_buddy_alloc()
[all …]
/openbmc/linux/mm/
H A Dzbud.c112 struct list_head buddy; member
121 enum buddy { enum
141 INIT_LIST_HEAD(&zhdr->buddy); in init_zbud_page()
155 static unsigned long encode_handle(struct zbud_header *zhdr, enum buddy bud) in encode_handle()
251 enum buddy bud; in zbud_alloc()
265 struct zbud_header, buddy); in zbud_alloc()
266 list_del(&zhdr->buddy); in zbud_alloc()
294 list_add(&zhdr->buddy, &pool->unbuddied[freechunks]); in zbud_alloc()
297 list_add(&zhdr->buddy, &pool->buddied); in zbud_alloc()
326 list_del(&zhdr->buddy); in zbud_free()
[all …]
H A Dz3fold.c72 enum buddy { enum
109 struct list_head buddy; member
344 INIT_LIST_HEAD(&zhdr->buddy); in init_z3fold_page()
361 static inline int __idx(struct z3fold_header *zhdr, enum buddy bud) in __idx()
372 enum buddy bud) in __encode_handle()
396 static unsigned long encode_handle(struct z3fold_header *zhdr, enum buddy bud) in encode_handle()
418 static enum buddy handle_to_buddy(unsigned long handle) in handle_to_buddy()
442 WARN_ON(!list_empty(&zhdr->buddy)); in __release_z3fold_page()
452 list_add(&zhdr->buddy, &pool->stale); in __release_z3fold_page()
474 list_del_init(&zhdr->buddy); in release_z3fold_page_locked_list()
[all …]
H A Dinternal.h347 static inline bool page_is_buddy(struct page *page, struct page *buddy, in page_is_buddy() argument
350 if (!page_is_guard(buddy) && !PageBuddy(buddy)) in page_is_buddy()
353 if (buddy_order(buddy) != order) in page_is_buddy()
360 if (page_zone_id(page) != page_zone_id(buddy)) in page_is_buddy()
363 VM_BUG_ON_PAGE(page_count(buddy) != 0, buddy); in page_is_buddy()
409 struct page *buddy; in find_buddy_page_pfn() local
411 buddy = page + (__buddy_pfn - pfn); in find_buddy_page_pfn()
415 if (page_is_buddy(page, buddy, order)) in find_buddy_page_pfn()
416 return buddy; in find_buddy_page_pfn()
H A Dpage_isolation.c212 struct page *buddy; in unset_migratetype_isolate() local
230 buddy = find_buddy_page_pfn(page, page_to_pfn(page), in unset_migratetype_isolate()
232 if (buddy && !is_migrate_isolate_page(buddy)) { in unset_migratetype_isolate()
/openbmc/linux/drivers/gpu/drm/
H A Ddrm_buddy.c269 struct drm_buddy_block *buddy; in __drm_buddy_free() local
271 buddy = __get_buddy(block); in __drm_buddy_free()
273 if (!drm_buddy_block_is_free(buddy)) in __drm_buddy_free()
276 list_del(&buddy->link); in __drm_buddy_free()
279 drm_block_free(mm, buddy); in __drm_buddy_free()
337 struct drm_buddy_block *buddy; in alloc_range_bias() local
409 buddy = __get_buddy(block); in alloc_range_bias()
410 if (buddy && in alloc_range_bias()
412 drm_buddy_block_is_free(buddy))) in alloc_range_bias()
496 struct drm_buddy_block *buddy; in __alloc_range() local
[all …]
/openbmc/linux/drivers/gpu/drm/tests/
H A Ddrm_buddy_test.c47 struct drm_buddy_block *block, bool buddy) in __dump_block() argument
52 drm_buddy_block_size(mm, block), !block->parent, buddy); in __dump_block()
58 struct drm_buddy_block *buddy; in dump_block() local
62 buddy = drm_get_buddy(block); in dump_block()
63 if (buddy) in dump_block()
64 __dump_block(test, mm, buddy, true); in dump_block()
70 struct drm_buddy_block *buddy; in check_block() local
113 buddy = drm_get_buddy(block); in check_block()
115 if (!buddy && block->parent) { in check_block()
120 if (buddy) { in check_block()
[all …]
/openbmc/linux/arch/mips/include/asm/
H A Dpgtable.h130 pte_t *buddy = ptep_buddy(ptep); local
135 if (pte_none(*buddy)) {
137 buddy->pte_low |= _PAGE_GLOBAL;
138 buddy->pte_high |= _PAGE_GLOBAL;
176 pte_t *buddy = ptep_buddy(ptep); local
182 cmpxchg64(&buddy->pte, 0, _PAGE_GLOBAL);
184 cmpxchg(&buddy->pte, 0, _PAGE_GLOBAL);
/openbmc/linux/arch/loongarch/include/asm/
H A Dpgtable.h319 pte_t *buddy = ptep_buddy(ptep); in set_pte() local
341 : [buddy] "+m" (buddy->pte), [tmp] "=&r" (tmp) in set_pte()
344 if (pte_none(*buddy)) in set_pte()
345 pte_val(*buddy) = pte_val(*buddy) | _PAGE_GLOBAL; in set_pte()
/openbmc/linux/fs/ext4/
H A Dmballoc.c694 void *buddy; in __mb_check_buddy() local
701 buddy = mb_find_buddy(e4b, order, &max); in __mb_check_buddy()
702 MB_CHECK_ASSERT(buddy); in __mb_check_buddy()
705 MB_CHECK_ASSERT(buddy != buddy2); in __mb_check_buddy()
711 if (mb_test_bit(i, buddy)) { in __mb_check_buddy()
736 buddy = mb_find_buddy(e4b, 0, &max); in __mb_check_buddy()
738 if (!mb_test_bit(i, buddy)) { in __mb_check_buddy()
768 MB_CHECK_ASSERT(mb_test_bit(k + i, buddy)); in __mb_check_buddy()
786 void *buddy, ext4_grpblk_t first, ext4_grpblk_t len, in ext4_mb_mark_free_simple() argument
814 buddy + sbi->s_mb_offsets[min]); in ext4_mb_mark_free_simple()
[all …]
/openbmc/linux/drivers/dma-buf/heaps/
H A DKconfig6 is backed by pages from the buddy allocator. If in doubt, say Y.
/openbmc/linux/Documentation/mm/
H A Dvmemmap_dedup.rst30 to the buddy allocator for other uses.
133 7 pages to the buddy allocator.
160 When a HugeTLB is freed to the buddy system, we should allocate 7 pages for
175 Notice: The head vmemmap page is not freed to the buddy allocator and all
/openbmc/linux/Documentation/gpu/rfc/
H A Di915_gem_lmem.rst20 * Move i915 buddy allocator over to TTM
/openbmc/linux/Documentation/trace/
H A Devents-kmem.rst56 the per-CPU allocator (high performance) or the buddy allocator.
58 If pages are allocated directly from the buddy allocator, the
/openbmc/linux/drivers/staging/rtl8723bs/core/
H A Drtw_pwrctrl.c92 struct adapter *buddy = adapter->pbuddy_adapter; in rtw_pwr_unassociated_idle() local
112 if (buddy) { in rtw_pwr_unassociated_idle()
113 struct mlme_priv *b_pmlmepriv = &(buddy->mlmepriv); in rtw_pwr_unassociated_idle()
/openbmc/linux/fs/jfs/
H A Djfs_dmap.c2775 int budsz, buddy; in dbJoin() local
2805 buddy = leafno ^ budsz; in dbJoin()
2810 if (newval > leaf[buddy]) in dbJoin()
2814 if (newval < leaf[buddy]) in dbJoin()
2825 if (leafno < buddy) { in dbJoin()
2828 dbAdjTree(tp, buddy, NOFREE, is_ctl); in dbJoin()
2834 leafno = buddy; in dbJoin()
/openbmc/linux/include/trace/events/
H A Dmmflags.h142 DEF_PAGETYPE_NAME(buddy)
/openbmc/linux/Documentation/admin-guide/mm/
H A Dpagemap.rst98 A free memory block managed by the buddy system allocator.
99 The buddy system organizes free memory in blocks of various orders.
/openbmc/qemu/docs/
H A DCOLO-FT.txt227 {"execute": "human-monitor-command", "arguments": {"command-line": "drive_add -n buddy driver=repli…
290 {"execute": "human-monitor-command", "arguments":{ "command-line": "drive_add -n buddy driver=repli…
319 {"execute": "human-monitor-command", "arguments":{ "command-line": "drive_add -n buddy driver=repli…
/openbmc/linux/include/linux/
H A Dpage-flags.h963 PAGE_TYPE_OPS(Buddy, buddy, buddy)

12