Lines Matching refs:p
186 slabclass_t *p = &slabclass[id]; in grow_slab_list() local
187 if (p->slabs == p->list_size) { in grow_slab_list()
188 size_t new_size = (p->list_size != 0) ? p->list_size * 2 : 16; in grow_slab_list()
189 void *new_list = realloc(p->slab_list, new_size * sizeof(void *)); in grow_slab_list()
191 p->list_size = new_size; in grow_slab_list()
192 p->slab_list = new_list; in grow_slab_list()
198 slabclass_t *p = &slabclass[id]; in split_slab_page_into_freelist() local
200 for (x = 0; x < p->perslab; x++) { in split_slab_page_into_freelist()
202 ptr += p->size; in split_slab_page_into_freelist()
208 slabclass_t *p = &slabclass[SLAB_GLOBAL_PAGE_POOL]; in get_page_from_global_pool() local
209 if (p->slabs < 1) { in get_page_from_global_pool()
212 char *ret = p->slab_list[p->slabs - 1]; in get_page_from_global_pool()
213 p->slabs--; in get_page_from_global_pool()
218 slabclass_t *p = &slabclass[id]; in do_slabs_newslab() local
221 : p->size * p->perslab; in do_slabs_newslab()
224 if ((mem_limit && mem_malloced + len > mem_limit && p->slabs > 0 in do_slabs_newslab()
242 p->slab_list[p->slabs++] = ptr; in do_slabs_newslab()
249 static void *do_slabs_alloc_chunked(const size_t size, slabclass_t *p, unsigned int id) { in do_slabs_alloc_chunked() argument
253 int csize = p->size - sizeof(item_chunk); in do_slabs_alloc_chunked()
257 while (p->sl_curr < chunks_req) { in do_slabs_alloc_chunked()
262 if (p->sl_curr >= chunks_req) { in do_slabs_alloc_chunked()
266 it = (item *)p->slots; in do_slabs_alloc_chunked()
267 p->slots = it->next; in do_slabs_alloc_chunked()
271 it->h_next = (item *)p->slots; in do_slabs_alloc_chunked()
281 chunk->size = p->size - sizeof(item_chunk); in do_slabs_alloc_chunked()
287 p->slots = chunk; in do_slabs_alloc_chunked()
297 p->sl_curr -= chunks_req; in do_slabs_alloc_chunked()
309 slabclass_t *p; in do_slabs_alloc() local
317 p = &slabclass[id]; in do_slabs_alloc()
318 assert(p->sl_curr == 0 || ((item *)p->slots)->slabs_clsid == 0); in do_slabs_alloc()
320 *total_bytes = p->requested; in do_slabs_alloc()
323 if (size <= p->size) { in do_slabs_alloc()
326 if (p->sl_curr == 0 && flags != SLABS_ALLOC_NO_NEWPAGE) { in do_slabs_alloc()
330 if (p->sl_curr != 0) { in do_slabs_alloc()
332 it = (item *)p->slots; in do_slabs_alloc()
333 p->slots = it->next; in do_slabs_alloc()
339 p->sl_curr--; in do_slabs_alloc()
346 ret = do_slabs_alloc_chunked(size, p, id); in do_slabs_alloc()
350 p->requested += size; in do_slabs_alloc()
351 MEMCACHED_SLABS_ALLOCATE(size, id, p->size, ret); in do_slabs_alloc()
360 slabclass_t *p) { in do_slabs_free_chunked() argument
394 chunk->next = p->slots; in do_slabs_free_chunked()
397 p->slots = it; in do_slabs_free_chunked()
398 p->sl_curr += chunks_found; in do_slabs_free_chunked()
399 p->requested -= size; in do_slabs_free_chunked()
406 slabclass_t *p; in do_slabs_free() local
414 p = &slabclass[id]; in do_slabs_free()
421 it->next = p->slots; in do_slabs_free()
423 p->slots = it; in do_slabs_free()
425 p->sl_curr++; in do_slabs_free()
426 p->requested -= size; in do_slabs_free()
428 do_slabs_free_chunked(it, size, id, p); in do_slabs_free()
484 slabclass_t *p = &slabclass[i]; in do_slabs_stats() local
485 if (p->slabs != 0) { in do_slabs_stats()
487 slabs = p->slabs; in do_slabs_stats()
488 perslab = p->perslab; in do_slabs_stats()
494 APPEND_NUM_STAT(i, "chunk_size", "%u", p->size); in do_slabs_stats()
499 slabs*perslab - p->sl_curr); in do_slabs_stats()
500 APPEND_NUM_STAT(i, "free_chunks", "%u", p->sl_curr); in do_slabs_stats()
504 (unsigned long long)p->requested); in do_slabs_stats()
564 void *p = NULL; in memory_release() local
572 (p = get_page_from_global_pool()) != NULL) { in memory_release()
573 free(p); in memory_release()
622 slabclass_t *p; in slabs_adjust_mem_requested() local
628 p = &slabclass[id]; in slabs_adjust_mem_requested()
629 p->requested = p->requested - old + ntotal; in slabs_adjust_mem_requested()
636 slabclass_t *p; in slabs_available_chunks() local
639 p = &slabclass[id]; in slabs_available_chunks()
640 ret = p->sl_curr; in slabs_available_chunks()
644 *total_bytes = p->requested; in slabs_available_chunks()
646 *chunks_perslab = p->perslab; in slabs_available_chunks()