Symbol: buddy
arch/arm64/kvm/hyp/nvhe/page_alloc.c
123
buddy = __find_buddy_avail(pool, p, order);
arch/arm64/kvm/hyp/nvhe/page_alloc.c
124
if (!buddy)
arch/arm64/kvm/hyp/nvhe/page_alloc.c
128
page_remove_from_list(buddy);
arch/arm64/kvm/hyp/nvhe/page_alloc.c
129
buddy->order = HYP_NO_ORDER;
arch/arm64/kvm/hyp/nvhe/page_alloc.c
130
p = min(p, buddy);
arch/arm64/kvm/hyp/nvhe/page_alloc.c
143
struct hyp_page *buddy;
arch/arm64/kvm/hyp/nvhe/page_alloc.c
154
buddy = __find_buddy_nocheck(pool, p, p->order);
arch/arm64/kvm/hyp/nvhe/page_alloc.c
155
buddy->order = p->order;
arch/arm64/kvm/hyp/nvhe/page_alloc.c
156
page_add_to_list(buddy, &pool->free_area[buddy->order]);
arch/arm64/kvm/hyp/nvhe/page_alloc.c
56
struct hyp_page *buddy = __find_buddy_nocheck(pool, p, order);
arch/arm64/kvm/hyp/nvhe/page_alloc.c
58
if (!buddy || buddy->order != order || buddy->refcount)
arch/arm64/kvm/hyp/nvhe/page_alloc.c
61
return buddy;
arch/arm64/kvm/hyp/nvhe/page_alloc.c
97
struct hyp_page *buddy;
arch/mips/include/asm/pgtable.h
130
pte_t *buddy = ptep_buddy(ptep);
arch/mips/include/asm/pgtable.h
135
if (pte_none(*buddy)) {
arch/mips/include/asm/pgtable.h
137
buddy->pte_low |= _PAGE_GLOBAL;
arch/mips/include/asm/pgtable.h
138
buddy->pte_high |= _PAGE_GLOBAL;
arch/mips/include/asm/pgtable.h
176
pte_t *buddy = ptep_buddy(ptep);
arch/mips/include/asm/pgtable.h
182
cmpxchg64(&buddy->pte, 0, _PAGE_GLOBAL);
arch/mips/include/asm/pgtable.h
184
cmpxchg(&buddy->pte, 0, _PAGE_GLOBAL);
drivers/acpi/arm64/mpam.c
175
struct acpi_device *buddy;
drivers/acpi/arm64/mpam.c
194
buddy = acpi_dev_get_first_match_dev(hid, uid, -1);
drivers/acpi/arm64/mpam.c
195
if (buddy) {
drivers/acpi/arm64/mpam.c
196
device_link_add(&pdev->dev, &buddy->dev, DL_FLAG_STATELESS);
drivers/acpi/arm64/mpam.c
197
acpi_dev_put(buddy);
drivers/gpu/buddy.c
1054
buddy = __get_buddy(block);
drivers/gpu/buddy.c
1055
if (buddy &&
drivers/gpu/buddy.c
1057
gpu_buddy_block_is_free(buddy)))
drivers/gpu/buddy.c
253
struct gpu_buddy_block *buddy;
drivers/gpu/buddy.c
255
buddy = __get_buddy(block);
drivers/gpu/buddy.c
257
if (!gpu_buddy_block_is_free(buddy))
drivers/gpu/buddy.c
266
gpu_buddy_block_is_clear(buddy))
drivers/gpu/buddy.c
273
rbtree_remove(mm, buddy);
drivers/gpu/buddy.c
274
if (force_merge && gpu_buddy_block_is_clear(buddy))
drivers/gpu/buddy.c
275
mm->clear_avail -= gpu_buddy_block_size(mm, buddy);
drivers/gpu/buddy.c
278
gpu_block_free(mm, buddy);
drivers/gpu/buddy.c
308
struct gpu_buddy_block *block, *buddy;
drivers/gpu/buddy.c
323
buddy = __get_buddy(block);
drivers/gpu/buddy.c
324
if (!gpu_buddy_block_is_free(buddy))
drivers/gpu/buddy.c
328
gpu_buddy_block_is_clear(buddy));
drivers/gpu/buddy.c
334
if (iter == &buddy->rb)
drivers/gpu/buddy.c
662
struct gpu_buddy_block *buddy;
drivers/gpu/buddy.c
737
buddy = __get_buddy(block);
drivers/gpu/buddy.c
738
if (buddy &&
drivers/gpu/buddy.c
740
gpu_buddy_block_is_free(buddy)))
drivers/gpu/buddy.c
915
struct gpu_buddy_block *buddy;
drivers/gpu/buddy.c
968
buddy = __get_buddy(block);
drivers/gpu/buddy.c
969
if (buddy &&
drivers/gpu/buddy.c
971
gpu_buddy_block_is_free(buddy)))
drivers/gpu/buddy.c
983
struct gpu_buddy_block *buddy;
drivers/gpu/drm/xe/xe_svm.c
790
struct gpu_buddy *buddy = vram_to_buddy(vr);
drivers/gpu/drm/xe/xe_svm.c
799
for (i = 0; i < gpu_buddy_block_size(buddy, block) >> PAGE_SHIFT; ++i)
drivers/infiniband/hw/mthca/mthca_mr.c
100
spin_unlock(&buddy->lock);
drivers/infiniband/hw/mthca/mthca_mr.c
104
__clear_bit(seg, buddy->bits[o]);
drivers/infiniband/hw/mthca/mthca_mr.c
105
--buddy->num_free[o];
drivers/infiniband/hw/mthca/mthca_mr.c
110
__set_bit(seg ^ 1, buddy->bits[o]);
drivers/infiniband/hw/mthca/mthca_mr.c
111
++buddy->num_free[o];
drivers/infiniband/hw/mthca/mthca_mr.c
114
spin_unlock(&buddy->lock);
drivers/infiniband/hw/mthca/mthca_mr.c
121
static void mthca_buddy_free(struct mthca_buddy *buddy, u32 seg, int order)
drivers/infiniband/hw/mthca/mthca_mr.c
125
spin_lock(&buddy->lock);
drivers/infiniband/hw/mthca/mthca_mr.c
127
while (test_bit(seg ^ 1, buddy->bits[order])) {
drivers/infiniband/hw/mthca/mthca_mr.c
128
__clear_bit(seg ^ 1, buddy->bits[order]);
drivers/infiniband/hw/mthca/mthca_mr.c
129
--buddy->num_free[order];
drivers/infiniband/hw/mthca/mthca_mr.c
134
__set_bit(seg, buddy->bits[order]);
drivers/infiniband/hw/mthca/mthca_mr.c
135
++buddy->num_free[order];
drivers/infiniband/hw/mthca/mthca_mr.c
137
spin_unlock(&buddy->lock);
drivers/infiniband/hw/mthca/mthca_mr.c
140
static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order)
drivers/infiniband/hw/mthca/mthca_mr.c
144
buddy->max_order = max_order;
drivers/infiniband/hw/mthca/mthca_mr.c
145
spin_lock_init(&buddy->lock);
drivers/infiniband/hw/mthca/mthca_mr.c
147
buddy->bits = kcalloc(buddy->max_order + 1, sizeof(*buddy->bits),
drivers/infiniband/hw/mthca/mthca_mr.c
149
buddy->num_free = kzalloc_objs(*buddy->num_free, (buddy->max_order + 1));
drivers/infiniband/hw/mthca/mthca_mr.c
150
if (!buddy->bits || !buddy->num_free)
drivers/infiniband/hw/mthca/mthca_mr.c
153
for (i = 0; i <= buddy->max_order; ++i) {
drivers/infiniband/hw/mthca/mthca_mr.c
154
buddy->bits[i] = bitmap_zalloc(1 << (buddy->max_order - i),
drivers/infiniband/hw/mthca/mthca_mr.c
156
if (!buddy->bits[i])
drivers/infiniband/hw/mthca/mthca_mr.c
160
__set_bit(0, buddy->bits[buddy->max_order]);
drivers/infiniband/hw/mthca/mthca_mr.c
161
buddy->num_free[buddy->max_order] = 1;
drivers/infiniband/hw/mthca/mthca_mr.c
166
for (i = 0; i <= buddy->max_order; ++i)
drivers/infiniband/hw/mthca/mthca_mr.c
167
bitmap_free(buddy->bits[i]);
drivers/infiniband/hw/mthca/mthca_mr.c
170
kfree(buddy->bits);
drivers/infiniband/hw/mthca/mthca_mr.c
171
kfree(buddy->num_free);
drivers/infiniband/hw/mthca/mthca_mr.c
176
static void mthca_buddy_cleanup(struct mthca_buddy *buddy)
drivers/infiniband/hw/mthca/mthca_mr.c
180
for (i = 0; i <= buddy->max_order; ++i)
drivers/infiniband/hw/mthca/mthca_mr.c
181
bitmap_free(buddy->bits[i]);
drivers/infiniband/hw/mthca/mthca_mr.c
183
kfree(buddy->bits);
drivers/infiniband/hw/mthca/mthca_mr.c
184
kfree(buddy->num_free);
drivers/infiniband/hw/mthca/mthca_mr.c
188
struct mthca_buddy *buddy)
drivers/infiniband/hw/mthca/mthca_mr.c
190
u32 seg = mthca_buddy_alloc(buddy, order);
drivers/infiniband/hw/mthca/mthca_mr.c
198
mthca_buddy_free(buddy, seg, order);
drivers/infiniband/hw/mthca/mthca_mr.c
206
struct mthca_buddy *buddy)
drivers/infiniband/hw/mthca/mthca_mr.c
218
mtt->buddy = buddy;
drivers/infiniband/hw/mthca/mthca_mr.c
223
mtt->first_seg = mthca_alloc_mtt_range(dev, mtt->order, buddy);
drivers/infiniband/hw/mthca/mthca_mr.c
242
mthca_buddy_free(mtt->buddy, mtt->first_seg, mtt->order);
drivers/infiniband/hw/mthca/mthca_mr.c
42
struct mthca_buddy *buddy;
drivers/infiniband/hw/mthca/mthca_mr.c
84
static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
drivers/infiniband/hw/mthca/mthca_mr.c
90
spin_lock(&buddy->lock);
drivers/infiniband/hw/mthca/mthca_mr.c
92
for (o = order; o <= buddy->max_order; ++o)
drivers/infiniband/hw/mthca/mthca_mr.c
93
if (buddy->num_free[o]) {
drivers/infiniband/hw/mthca/mthca_mr.c
94
m = 1 << (buddy->max_order - o);
drivers/infiniband/hw/mthca/mthca_mr.c
95
seg = find_first_bit(buddy->bits[o], m);
drivers/net/ethernet/mellanox/mlx4/mr.c
102
static int mlx4_buddy_init(struct mlx4_buddy *buddy, int max_order)
drivers/net/ethernet/mellanox/mlx4/mr.c
106
buddy->max_order = max_order;
drivers/net/ethernet/mellanox/mlx4/mr.c
107
spin_lock_init(&buddy->lock);
drivers/net/ethernet/mellanox/mlx4/mr.c
109
buddy->bits = kcalloc(buddy->max_order + 1, sizeof(*buddy->bits),
drivers/net/ethernet/mellanox/mlx4/mr.c
111
buddy->num_free = kcalloc(buddy->max_order + 1, sizeof(*buddy->num_free),
drivers/net/ethernet/mellanox/mlx4/mr.c
113
if (!buddy->bits || !buddy->num_free)
drivers/net/ethernet/mellanox/mlx4/mr.c
116
for (i = 0; i <= buddy->max_order; ++i) {
drivers/net/ethernet/mellanox/mlx4/mr.c
117
s = BITS_TO_LONGS(1UL << (buddy->max_order - i));
drivers/net/ethernet/mellanox/mlx4/mr.c
118
buddy->bits[i] = kvmalloc_array(s, sizeof(long), GFP_KERNEL | __GFP_ZERO);
drivers/net/ethernet/mellanox/mlx4/mr.c
119
if (!buddy->bits[i])
drivers/net/ethernet/mellanox/mlx4/mr.c
123
set_bit(0, buddy->bits[buddy->max_order]);
drivers/net/ethernet/mellanox/mlx4/mr.c
124
buddy->num_free[buddy->max_order] = 1;
drivers/net/ethernet/mellanox/mlx4/mr.c
129
for (i = 0; i <= buddy->max_order; ++i)
drivers/net/ethernet/mellanox/mlx4/mr.c
130
kvfree(buddy->bits[i]);
drivers/net/ethernet/mellanox/mlx4/mr.c
133
kfree(buddy->bits);
drivers/net/ethernet/mellanox/mlx4/mr.c
134
kfree(buddy->num_free);
drivers/net/ethernet/mellanox/mlx4/mr.c
139
static void mlx4_buddy_cleanup(struct mlx4_buddy *buddy)
drivers/net/ethernet/mellanox/mlx4/mr.c
143
for (i = 0; i <= buddy->max_order; ++i)
drivers/net/ethernet/mellanox/mlx4/mr.c
144
kvfree(buddy->bits[i]);
drivers/net/ethernet/mellanox/mlx4/mr.c
146
kfree(buddy->bits);
drivers/net/ethernet/mellanox/mlx4/mr.c
147
kfree(buddy->num_free);
drivers/net/ethernet/mellanox/mlx4/mr.c
46
static u32 mlx4_buddy_alloc(struct mlx4_buddy *buddy, int order)
drivers/net/ethernet/mellanox/mlx4/mr.c
52
spin_lock(&buddy->lock);
drivers/net/ethernet/mellanox/mlx4/mr.c
54
for (o = order; o <= buddy->max_order; ++o)
drivers/net/ethernet/mellanox/mlx4/mr.c
55
if (buddy->num_free[o]) {
drivers/net/ethernet/mellanox/mlx4/mr.c
56
m = 1 << (buddy->max_order - o);
drivers/net/ethernet/mellanox/mlx4/mr.c
57
seg = find_first_bit(buddy->bits[o], m);
drivers/net/ethernet/mellanox/mlx4/mr.c
62
spin_unlock(&buddy->lock);
drivers/net/ethernet/mellanox/mlx4/mr.c
66
clear_bit(seg, buddy->bits[o]);
drivers/net/ethernet/mellanox/mlx4/mr.c
67
--buddy->num_free[o];
drivers/net/ethernet/mellanox/mlx4/mr.c
72
set_bit(seg ^ 1, buddy->bits[o]);
drivers/net/ethernet/mellanox/mlx4/mr.c
73
++buddy->num_free[o];
drivers/net/ethernet/mellanox/mlx4/mr.c
76
spin_unlock(&buddy->lock);
drivers/net/ethernet/mellanox/mlx4/mr.c
83
static void mlx4_buddy_free(struct mlx4_buddy *buddy, u32 seg, int order)
drivers/net/ethernet/mellanox/mlx4/mr.c
87
spin_lock(&buddy->lock);
drivers/net/ethernet/mellanox/mlx4/mr.c
89
while (test_bit(seg ^ 1, buddy->bits[order])) {
drivers/net/ethernet/mellanox/mlx4/mr.c
90
clear_bit(seg ^ 1, buddy->bits[order]);
drivers/net/ethernet/mellanox/mlx4/mr.c
91
--buddy->num_free[order];
drivers/net/ethernet/mellanox/mlx4/mr.c
96
set_bit(seg, buddy->bits[order]);
drivers/net/ethernet/mellanox/mlx4/mr.c
97
++buddy->num_free[order];
drivers/net/ethernet/mellanox/mlx4/mr.c
99
spin_unlock(&buddy->lock);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
105
if (order_iter > buddy->max_order)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
11
buddy->max_order = max_order;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
113
int mlx5hws_buddy_alloc_mem(struct mlx5hws_buddy_mem *buddy, u32 order)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
117
err = hws_buddy_find_free_seg(buddy, order, &seg, &order_iter);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
121
bitmap_clear(buddy->bitmap[order_iter], seg, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
122
--buddy->num_free[order_iter];
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
127
bitmap_set(buddy->bitmap[order_iter], seg ^ 1, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
128
++buddy->num_free[order_iter];
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
13
buddy->bitmap = kcalloc(buddy->max_order + 1,
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
136
void mlx5hws_buddy_free_mem(struct mlx5hws_buddy_mem *buddy, u32 seg, u32 order)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
14
sizeof(*buddy->bitmap),
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
140
while (test_bit(seg ^ 1, buddy->bitmap[order])) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
141
bitmap_clear(buddy->bitmap[order], seg ^ 1, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
142
--buddy->num_free[order];
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
147
bitmap_set(buddy->bitmap[order], seg, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
148
++buddy->num_free[order];
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
16
if (!buddy->bitmap)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
19
buddy->num_free = kcalloc(buddy->max_order + 1,
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
20
sizeof(*buddy->num_free),
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
22
if (!buddy->num_free) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
27
for (i = 0; i <= (int)buddy->max_order; ++i) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
28
s = 1 << (buddy->max_order - i);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
30
buddy->bitmap[i] = bitmap_zalloc(s, GFP_KERNEL);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
31
if (!buddy->bitmap[i]) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
37
bitmap_set(buddy->bitmap[buddy->max_order], 0, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
38
buddy->num_free[buddy->max_order] = 1;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
43
for (i = 0; i <= (int)buddy->max_order; ++i)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
44
bitmap_free(buddy->bitmap[i]);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
46
kfree(buddy->num_free);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
49
kfree(buddy->bitmap);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
55
struct mlx5hws_buddy_mem *buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
57
buddy = kzalloc_obj(*buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
58
if (!buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
61
if (hws_buddy_init(buddy, max_order))
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
64
return buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
67
kfree(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
7
static int hws_buddy_init(struct mlx5hws_buddy_mem *buddy, u32 max_order)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
71
void mlx5hws_buddy_cleanup(struct mlx5hws_buddy_mem *buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
75
for (i = 0; i <= (int)buddy->max_order; ++i)
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
76
bitmap_free(buddy->bitmap[i]);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
78
kfree(buddy->num_free);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
79
kfree(buddy->bitmap);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
82
static int hws_buddy_find_free_seg(struct mlx5hws_buddy_mem *buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
90
order_iter <= buddy->max_order; ++order_iter) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
91
if (!buddy->num_free[order_iter])
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
94
m = 1 << (buddy->max_order - order_iter);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.c
95
seg = find_first_bit(buddy->bitmap[order_iter], m);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.h
15
void mlx5hws_buddy_cleanup(struct mlx5hws_buddy_mem *buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.h
17
int mlx5hws_buddy_alloc_mem(struct mlx5hws_buddy_mem *buddy, u32 order);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/buddy.h
19
void mlx5hws_buddy_free_mem(struct mlx5hws_buddy_mem *buddy, u32 seg, u32 order);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
114
struct mlx5hws_buddy_mem *buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
116
buddy = mlx5hws_buddy_create(pool->alloc_log_sz);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
117
if (!buddy) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
126
mlx5hws_buddy_cleanup(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
127
kfree(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
131
pool->db.buddy = buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
139
struct mlx5hws_buddy_mem *buddy = pool->db.buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
141
if (!buddy) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
146
chunk->offset = mlx5hws_buddy_alloc_mem(buddy, chunk->order);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
156
struct mlx5hws_buddy_mem *buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
158
buddy = pool->db.buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
159
if (!buddy) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
164
mlx5hws_buddy_free_mem(buddy, chunk->offset, chunk->order);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
169
struct mlx5hws_buddy_mem *buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
171
buddy = pool->db.buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
172
if (buddy) {
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
173
mlx5hws_buddy_cleanup(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
174
kfree(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.c
175
pool->db.buddy = NULL;
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/pool.h
59
struct mlx5hws_buddy_mem *buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
10
int mlx5dr_buddy_init(struct mlx5dr_icm_buddy_mem *buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
115
int mlx5dr_buddy_alloc_mem(struct mlx5dr_icm_buddy_mem *buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
122
err = dr_buddy_find_free_seg(buddy, order, &seg, &order_iter);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
126
bitmap_clear(buddy->bitmap[order_iter], seg, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
127
--buddy->num_free[order_iter];
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
136
bitmap_set(buddy->bitmap[order_iter], seg ^ 1, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
137
++buddy->num_free[order_iter];
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
146
void mlx5dr_buddy_free_mem(struct mlx5dr_icm_buddy_mem *buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
15
buddy->max_order = max_order;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
154
while (test_bit(seg ^ 1, buddy->bitmap[order])) {
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
155
bitmap_clear(buddy->bitmap[order], seg ^ 1, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
156
--buddy->num_free[order];
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
160
bitmap_set(buddy->bitmap[order], seg, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
162
++buddy->num_free[order];
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
17
INIT_LIST_HEAD(&buddy->list_node);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
19
buddy->bitmap = kzalloc_objs(*buddy->bitmap, buddy->max_order + 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
20
buddy->num_free = kzalloc_objs(*buddy->num_free, buddy->max_order + 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
22
if (!buddy->bitmap || !buddy->num_free)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
27
for (i = 0; i <= buddy->max_order; ++i) {
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
28
unsigned int size = 1 << (buddy->max_order - i);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
30
buddy->bitmap[i] = bitmap_zalloc(size, GFP_KERNEL);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
31
if (!buddy->bitmap[i])
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
39
bitmap_set(buddy->bitmap[buddy->max_order], 0, 1);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
41
buddy->num_free[buddy->max_order] = 1;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
46
for (i = 0; i <= buddy->max_order; ++i)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
47
bitmap_free(buddy->bitmap[i]);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
50
kfree(buddy->num_free);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
51
kfree(buddy->bitmap);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
55
void mlx5dr_buddy_cleanup(struct mlx5dr_icm_buddy_mem *buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
59
list_del(&buddy->list_node);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
61
for (i = 0; i <= buddy->max_order; ++i)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
62
bitmap_free(buddy->bitmap[i]);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
64
kfree(buddy->num_free);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
65
kfree(buddy->bitmap);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
68
static int dr_buddy_find_free_seg(struct mlx5dr_icm_buddy_mem *buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
76
order_iter <= buddy->max_order; ++order_iter) {
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
77
if (!buddy->num_free[order_iter])
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
80
m = 1 << (buddy->max_order - order_iter);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
81
seg = find_first_bit(buddy->bitmap[order_iter], m);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_buddy.c
91
if (order_iter > buddy->max_order)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
199
static int dr_icm_buddy_get_ste_size(struct mlx5dr_icm_buddy_mem *buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
212
struct mlx5dr_icm_buddy_mem *buddy = chunk->buddy_mem;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
213
int ste_size = dr_icm_buddy_get_ste_size(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
216
chunk->ste_arr = &buddy->ste_arr[index];
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
217
chunk->miss_list = &buddy->miss_list[index];
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
218
chunk->hw_ste_arr = buddy->hw_ste_arr + index * ste_size;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
225
static int dr_icm_buddy_init_ste_cache(struct mlx5dr_icm_buddy_mem *buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
228
mlx5dr_icm_pool_chunk_size_to_entries(buddy->pool->max_log_chunk_sz);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
230
buddy->ste_arr = kvzalloc_objs(struct mlx5dr_ste, num_of_entries);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
231
if (!buddy->ste_arr)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
237
buddy->hw_ste_arr = kvcalloc(num_of_entries,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
238
dr_icm_buddy_get_ste_size(buddy), GFP_KERNEL);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
239
if (!buddy->hw_ste_arr)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
242
buddy->miss_list = kvmalloc_array(num_of_entries, sizeof(struct list_head), GFP_KERNEL);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
243
if (!buddy->miss_list)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
249
kvfree(buddy->hw_ste_arr);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
251
kvfree(buddy->ste_arr);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
255
static void dr_icm_buddy_cleanup_ste_cache(struct mlx5dr_icm_buddy_mem *buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
257
kvfree(buddy->ste_arr);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
258
kvfree(buddy->hw_ste_arr);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
259
kvfree(buddy->miss_list);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
264
struct mlx5dr_icm_buddy_mem *buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
271
buddy = kvzalloc_obj(*buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
272
if (!buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
275
if (mlx5dr_buddy_init(buddy, pool->max_log_chunk_sz))
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
278
buddy->icm_mr = icm_mr;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
279
buddy->pool = pool;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
283
if (dr_icm_buddy_init_ste_cache(buddy))
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
288
list_add(&buddy->list_node, &pool->buddy_mem_list);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
295
mlx5dr_buddy_cleanup(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
297
kvfree(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
303
static void dr_icm_buddy_destroy(struct mlx5dr_icm_buddy_mem *buddy)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
305
enum mlx5dr_icm_type icm_type = buddy->pool->icm_type;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
307
dr_icm_pool_mr_destroy(buddy->icm_mr);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
309
mlx5dr_buddy_cleanup(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
312
dr_icm_buddy_cleanup_ste_cache(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
314
buddy->pool->dmn->num_buddies[icm_type]--;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
316
kvfree(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
366
struct mlx5dr_icm_buddy_mem *buddy, *tmp_buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
377
list_for_each_entry_safe(buddy, tmp_buddy, &pool->buddy_mem_list, list_node) {
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
378
if (!buddy->used_memory && pool->icm_type == DR_ICM_TYPE_STE)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
379
dr_icm_buddy_destroy(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
387
struct mlx5dr_icm_buddy_mem **buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
425
*buddy = buddy_mem_pool;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
438
struct mlx5dr_icm_buddy_mem *buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
447
ret = dr_icm_handle_buddies_get_mem(pool, chunk_size, &buddy, &seg);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
455
dr_icm_chunk_init(chunk, pool, chunk_size, buddy, seg);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
460
mlx5dr_buddy_free_mem(buddy, seg, chunk_size);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
468
struct mlx5dr_icm_buddy_mem *buddy = chunk->buddy_mem;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
469
struct mlx5dr_icm_pool *pool = buddy->pool;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
564
struct mlx5dr_icm_buddy_mem *buddy, *tmp_buddy;
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
568
list_for_each_entry_safe(buddy, tmp_buddy, &pool->buddy_mem_list, list_node)
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_icm_pool.c
569
dr_icm_buddy_destroy(buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/mlx5dr.h
185
int mlx5dr_buddy_init(struct mlx5dr_icm_buddy_mem *buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/mlx5dr.h
187
void mlx5dr_buddy_cleanup(struct mlx5dr_icm_buddy_mem *buddy);
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/mlx5dr.h
188
int mlx5dr_buddy_alloc_mem(struct mlx5dr_icm_buddy_mem *buddy,
drivers/net/ethernet/mellanox/mlx5/core/steering/sws/mlx5dr.h
191
void mlx5dr_buddy_free_mem(struct mlx5dr_icm_buddy_mem *buddy,
drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
104
if (buddy) {
drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
105
struct mlme_priv *b_pmlmepriv = &buddy->mlmepriv;
drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
84
struct adapter *buddy = adapter->pbuddy_adapter;
fs/ext4/mballoc-test.c
622
static void mbt_generate_buddy(struct super_block *sb, void *buddy,
fs/ext4/mballoc-test.c
630
memset(buddy, 0xff, sb->s_blocksize);
fs/ext4/mballoc-test.c
636
bb_h = buddy + sbi->s_mb_offsets[1];
fs/ext4/mballoc-test.c
657
bb = buddy + sbi->s_mb_offsets[order];
fs/ext4/mballoc-test.c
658
bb_h = buddy + sbi->s_mb_offsets[order + 1];
fs/ext4/mballoc-test.c
765
void *buddy, struct ext4_group_info *grp)
fs/ext4/mballoc-test.c
786
memset(buddy, 0xff, sb->s_blocksize);
fs/ext4/mballoc-test.c
789
ext4_mb_generate_buddy_test(sb, buddy, bitmap, 0, grp);
fs/ext4/mballoc-test.c
791
KUNIT_ASSERT_MEMEQ(test, buddy, e4b->bd_buddy, sb->s_blocksize);
fs/ext4/mballoc-test.c
799
void *bitmap, *buddy;
fs/ext4/mballoc-test.c
811
buddy = kunit_kzalloc(test, sb->s_blocksize, GFP_KERNEL);
fs/ext4/mballoc-test.c
812
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buddy);
fs/ext4/mballoc-test.c
826
ranges[i].len, bitmap, buddy, grp);
fs/ext4/mballoc-test.c
834
void *buddy, struct ext4_group_info *grp)
fs/ext4/mballoc-test.c
850
memset(buddy, 0xff, sb->s_blocksize);
fs/ext4/mballoc-test.c
853
ext4_mb_generate_buddy_test(sb, buddy, bitmap, 0, grp);
fs/ext4/mballoc-test.c
855
KUNIT_ASSERT_MEMEQ(test, buddy, e4b->bd_buddy, sb->s_blocksize);
fs/ext4/mballoc-test.c
864
void *bitmap, *buddy;
fs/ext4/mballoc-test.c
877
buddy = kunit_kzalloc(test, sb->s_blocksize, GFP_KERNEL);
fs/ext4/mballoc-test.c
878
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buddy);
fs/ext4/mballoc-test.c
902
ranges[i].len, bitmap, buddy, grp);
fs/ext4/mballoc.c
1282
void *buddy, void *bitmap, ext4_group_t group,
fs/ext4/mballoc.c
1305
ext4_mb_mark_free_simple(sb, buddy, first, len, grp);
fs/ext4/mballoc.c
1340
void *buddy;
fs/ext4/mballoc.c
1342
while ((buddy = mb_find_buddy(e4b, order++, &count)))
fs/ext4/mballoc.c
1343
mb_set_bits(buddy, 0, count);
fs/ext4/mballoc.c
1946
void *buddy = mb_find_buddy(e4b, order, &max);
fs/ext4/mballoc.c
1948
while (buddy) {
fs/ext4/mballoc.c
1981
e4b->bd_info->bb_counters[order] += mb_buddy_adjust_border(&first, buddy, -1);
fs/ext4/mballoc.c
1983
e4b->bd_info->bb_counters[order] += mb_buddy_adjust_border(&last, buddy, 1);
fs/ext4/mballoc.c
1990
mb_clear_bits(buddy, first, last - first + 1);
fs/ext4/mballoc.c
1996
buddy = buddy2;
fs/ext4/mballoc.c
2092
void *buddy;
fs/ext4/mballoc.c
2097
buddy = mb_find_buddy(e4b, 0, &max);
fs/ext4/mballoc.c
2098
BUG_ON(buddy == NULL);
fs/ext4/mballoc.c
2100
if (mb_test_bit(block, buddy)) {
fs/ext4/mballoc.c
2156
void *buddy;
fs/ext4/mballoc.c
2187
buddy = mb_find_buddy(e4b, ord, &max);
fs/ext4/mballoc.c
2189
mb_set_bit(start >> ord, buddy);
fs/ext4/mballoc.c
2202
buddy = mb_find_buddy(e4b, ord, &max);
fs/ext4/mballoc.c
2203
mb_set_bit(start >> ord, buddy);
fs/ext4/mballoc.c
2508
void *buddy;
fs/ext4/mballoc.c
2518
buddy = mb_find_buddy(e4b, i, &max);
fs/ext4/mballoc.c
2519
if (WARN_RATELIMIT(buddy == NULL,
fs/ext4/mballoc.c
2523
k = mb_find_next_zero_bit(buddy, max, 0);
fs/ext4/mballoc.c
718
void *buddy;
fs/ext4/mballoc.c
7237
void ext4_mb_generate_buddy_test(struct super_block *sb, void *buddy,
fs/ext4/mballoc.c
7241
ext4_mb_generate_buddy(sb, buddy, bitmap, group, grp);
fs/ext4/mballoc.c
725
buddy = mb_find_buddy(e4b, order, &max);
fs/ext4/mballoc.c
726
MB_CHECK_ASSERT(buddy);
fs/ext4/mballoc.c
729
MB_CHECK_ASSERT(buddy != buddy2);
fs/ext4/mballoc.c
735
if (mb_test_bit(i, buddy)) {
fs/ext4/mballoc.c
751
buddy = mb_find_buddy(e4b, 0, &max);
fs/ext4/mballoc.c
753
if (!mb_test_bit(i, buddy)) {
fs/ext4/mballoc.c
765
in_use = mb_test_bit(i, buddy) || mb_test_bit(i + 1, buddy);
fs/ext4/mballoc.c
791
MB_CHECK_ASSERT(mb_test_bit(k + i, buddy));
fs/ext4/mballoc.c
808
void *buddy, ext4_grpblk_t first, ext4_grpblk_t len,
fs/ext4/mballoc.c
836
buddy + sbi->s_mb_offsets[min]);
fs/ext4/mballoc.h
293
void *buddy, void *bitmap, ext4_group_t group,
fs/jfs/jfs_dmap.c
2859
int budsz, buddy;
fs/jfs/jfs_dmap.c
2889
buddy = leafno ^ budsz;
fs/jfs/jfs_dmap.c
2894
if (newval > leaf[buddy])
fs/jfs/jfs_dmap.c
2898
if (newval < leaf[buddy])
fs/jfs/jfs_dmap.c
2909
if (leafno < buddy) {
fs/jfs/jfs_dmap.c
2912
dbAdjTree(tp, buddy, NOFREE, is_ctl);
fs/jfs/jfs_dmap.c
2918
leafno = buddy;
include/linux/page-flags.h
992
PAGE_TYPE_OPS(Buddy, buddy, buddy)
include/trace/events/ext4.h
1101
__field( __u16, buddy )
include/trace/events/ext4.h
1125
__entry->buddy = ac->ac_buddy;
include/trace/events/ext4.h
1143
__entry->buddy ? 1 << __entry->buddy : 0)
mm/debug.c
57
DEF_PAGETYPE_NAME(buddy),
mm/internal.h
729
static inline bool page_is_buddy(struct page *page, struct page *buddy,
mm/internal.h
732
if (!page_is_guard(buddy) && !PageBuddy(buddy))
mm/internal.h
735
if (buddy_order(buddy) != order)
mm/internal.h
742
if (page_zone_id(page) != page_zone_id(buddy))
mm/internal.h
745
VM_BUG_ON_PAGE(page_count(buddy) != 0, buddy);
mm/internal.h
791
struct page *buddy;
mm/internal.h
793
buddy = page + (__buddy_pfn - pfn);
mm/internal.h
797
if (page_is_buddy(page, buddy, order))
mm/internal.h
798
return buddy;
mm/page_alloc.c
2105
struct page *buddy;
mm/page_alloc.c
2121
buddy = pfn_to_page(buddy_pfn);
mm/page_alloc.c
2123
if (PageBuddy(buddy) && buddy_order(buddy) > pageblock_order) {
mm/page_alloc.c
2124
int order = buddy_order(buddy);
mm/page_alloc.c
2126
del_page_from_free_list(buddy, zone, order,
mm/page_alloc.c
2127
get_pfnblock_migratetype(buddy, buddy_pfn));
mm/page_alloc.c
2129
split_large_buddy(zone, buddy, buddy_pfn, order, FPI_NONE);
mm/page_alloc.c
944
struct page *buddy;
mm/page_alloc.c
964
buddy = find_buddy_page_pfn(page, pfn, order, &buddy_pfn);
mm/page_alloc.c
965
if (!buddy)
mm/page_alloc.c
975
buddy_mt = get_pfnblock_migratetype(buddy, buddy_pfn);
mm/page_alloc.c
987
if (page_is_guard(buddy))
mm/page_alloc.c
988
clear_page_guard(zone, buddy, order);
mm/page_alloc.c
990
__del_page_from_free_list(buddy, zone, order, buddy_mt);
mm/page_alloc.c
998
change_pageblock_range(buddy, order, migratetype);
mm/page_isolation.c
227
struct page *buddy;
mm/page_isolation.c
245
buddy = find_buddy_page_pfn(page, page_to_pfn(page),
mm/page_isolation.c
247
if (buddy && !is_migrate_isolate_page(buddy)) {
tools/testing/selftests/bpf/libarena/include/libarena/buddy.h
76
int buddy_init(struct buddy __arena *buddy);
tools/testing/selftests/bpf/libarena/include/libarena/buddy.h
77
int buddy_destroy(struct buddy __arena *buddy);
tools/testing/selftests/bpf/libarena/include/libarena/buddy.h
78
int buddy_free(struct buddy __arena *buddy, void __arena *free);
tools/testing/selftests/bpf/libarena/include/libarena/buddy.h
79
void __arena *buddy_alloc(struct buddy __arena *buddy, size_t size);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
100
buddy_free(&buddy, mem);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
11
extern struct buddy __arena buddy;
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
122
blob = buddy_alloc(&buddy, alloc_size);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
141
buddy_free(&buddy, (void __arena *)blob);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
159
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
170
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
175
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
195
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
206
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
211
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
231
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
242
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
247
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
26
mem = buddy_alloc(&buddy, alloc_size);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
48
buddy_free(&buddy, mem);
tools/testing/selftests/bpf/libarena/selftests/st_asan_buddy.bpf.c
80
mem = buddy_alloc(&buddy, alloc_size);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
103
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
119
mem = buddy_alloc(&buddy, sz);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
121
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
133
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
155
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
163
buddy_free(&buddy, mem);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
166
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
176
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
182
ptrs[i] = buddy_alloc(&buddy, alignment_sizes[i]);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
186
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
195
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
202
buddy_free(&buddy, ptrs[i]);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
204
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
33
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
37
ret = buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
52
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
56
mem = buddy_alloc(&buddy, alloc_sizes[i]);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
58
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
62
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
75
ret = buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
80
mem = buddy_alloc(&buddy, alloc_free_sizes[(i * 5) % 8]);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
82
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
86
buddy_free(&buddy, mem);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
89
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/selftests/st_buddy.bpf.c
9
extern struct buddy __arena buddy;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
101
if (!buddy || !vaddrp)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
105
vaddr = buddy->vaddr;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
111
old = __sync_val_compare_and_swap(&buddy->vaddr, vaddr, new);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
384
static struct buddy_chunk __arena *buddy_chunk_get(struct buddy __arena *buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
400
ret = buddy_alloc_arena_vaddr(buddy, &vaddr);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
419
if (buddy_lock(buddy)) {
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
48
static inline int buddy_lock(struct buddy __arena *buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
50
return arena_spin_lock(&buddy->lock);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
523
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
53
static inline void buddy_unlock(struct buddy __arena *buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
534
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
55
arena_spin_unlock(&buddy->lock);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
550
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
559
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
564
__weak int buddy_init(struct buddy __arena *buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
573
ret = buddy_reserve_arena_vaddr(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
580
chunk = buddy_chunk_get(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
582
if (buddy_lock(buddy)) {
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
589
chunk->next = buddy->first_chunk;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
592
buddy->first_chunk = chunk;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
594
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
605
__weak int buddy_destroy(struct buddy __arena *buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
609
if (!buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
616
for (chunk = buddy->first_chunk; chunk && can_loop; chunk = next) {
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
626
buddy_unreserve_arena_vaddr(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
629
buddy->first_chunk = NULL;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
64
static int buddy_reserve_arena_vaddr(struct buddy __arena *buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
66
buddy->vaddr = 0;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
712
static u64 buddy_alloc_from_existing_chunks(struct buddy __arena *buddy, int order)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
717
for (chunk = buddy->first_chunk; chunk != NULL && can_loop;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
731
static u64 buddy_alloc_from_new_chunk(struct buddy __arena *buddy, struct buddy_chunk __arena *chunk, int order)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
735
if (buddy_lock(buddy))
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
743
chunk->next = buddy->first_chunk;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
744
buddy->first_chunk = chunk;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
746
address = buddy_chunk_alloc(buddy->first_chunk, order);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
748
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
753
void __arena *buddy_alloc(struct buddy __arena *buddy, size_t size)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
759
if (!buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
76
static void buddy_unreserve_arena_vaddr(struct buddy __arena *buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
768
if (buddy_lock(buddy))
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
771
address = (u8 __arena *)buddy_alloc_from_existing_chunks(buddy, order);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
772
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
777
chunk = buddy_chunk_get(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
779
address = (u8 __arena *)buddy_alloc_from_new_chunk(buddy, chunk, order);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
79
&arena, (void __arena *)(BUDDY_VADDR_OFFSET + buddy->vaddr),
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
80
(BUDDY_VADDR_SIZE - buddy->vaddr) / __PAGE_SIZE);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
800
static __always_inline int buddy_free_unlocked(struct buddy __arena *buddy, u64 addr)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
809
if (!buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
82
buddy->vaddr = 0;
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
881
__weak int buddy_free(struct buddy __arena *buddy, void __arena *addr)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
885
if (!buddy)
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
892
ret = buddy_lock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
896
ret = buddy_free_unlocked(buddy, (u64)addr);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
898
buddy_unlock(buddy);
tools/testing/selftests/bpf/libarena/src/buddy.bpf.c
97
__weak int buddy_alloc_arena_vaddr(struct buddy __arena *buddy, u64 *vaddrp)
tools/testing/selftests/bpf/libarena/src/common.bpf.c
36
buddy_destroy(&buddy);
tools/testing/selftests/bpf/libarena/src/common.bpf.c
38
return buddy_init(&buddy);
tools/testing/selftests/bpf/libarena/src/common.bpf.c
43
return buddy_alloc(&buddy, size);
tools/testing/selftests/bpf/libarena/src/common.bpf.c
48
buddy_free(&buddy, ptr);
tools/testing/selftests/bpf/libarena/src/common.bpf.c
9
struct buddy __arena buddy;