Lines Matching refs:alloc_bits
337 static int pcpu_next_hint(struct pcpu_block_md *block, int alloc_bits) in pcpu_next_hint() argument
348 alloc_bits > block->scan_hint) in pcpu_next_hint()
420 static void pcpu_next_fit_region(struct pcpu_chunk *chunk, int alloc_bits, in pcpu_next_fit_region() argument
433 if (*bits >= alloc_bits) in pcpu_next_fit_region()
448 block->contig_hint >= *bits + alloc_bits) { in pcpu_next_fit_region()
449 int start = pcpu_next_hint(block, alloc_bits); in pcpu_next_fit_region()
451 *bits += alloc_bits + block->contig_hint_start - in pcpu_next_fit_region()
463 if (*bits >= alloc_bits) in pcpu_next_fit_region()
483 #define pcpu_for_each_fit_region(chunk, alloc_bits, align, bit_off, bits) \ argument
484 for (pcpu_next_fit_region((chunk), (alloc_bits), (align), &(bit_off), \
488 pcpu_next_fit_region((chunk), (alloc_bits), (align), &(bit_off), \
1110 static int pcpu_find_block_fit(struct pcpu_chunk *chunk, int alloc_bits, in pcpu_find_block_fit() argument
1121 if (!pcpu_check_block_hint(chunk_md, alloc_bits, align)) in pcpu_find_block_fit()
1124 bit_off = pcpu_next_hint(chunk_md, alloc_bits); in pcpu_find_block_fit()
1126 pcpu_for_each_fit_region(chunk, alloc_bits, align, bit_off, bits) { in pcpu_find_block_fit()
1216 static int pcpu_alloc_area(struct pcpu_chunk *chunk, int alloc_bits, in pcpu_alloc_area() argument
1231 end = min_t(int, start + alloc_bits + PCPU_BITMAP_BLOCK_BITS, in pcpu_alloc_area()
1233 bit_off = pcpu_find_zero_area(chunk->alloc_map, end, start, alloc_bits, in pcpu_alloc_area()
1242 bitmap_set(chunk->alloc_map, bit_off, alloc_bits); in pcpu_alloc_area()
1246 bitmap_clear(chunk->bound_map, bit_off + 1, alloc_bits - 1); in pcpu_alloc_area()
1247 set_bit(bit_off + alloc_bits, chunk->bound_map); in pcpu_alloc_area()
1249 chunk->free_bytes -= alloc_bits * PCPU_MIN_ALLOC_SIZE; in pcpu_alloc_area()
1256 bit_off + alloc_bits); in pcpu_alloc_area()
1258 pcpu_block_update_hint_alloc(chunk, bit_off, alloc_bits); in pcpu_alloc_area()