Lines Matching refs:size
28 unsigned int size; /* sizes of items */ member
64 static void *memory_allocate(size_t size);
65 static void do_slabs_free(void *ptr, const size_t size, unsigned int id);
83 unsigned int slabs_clsid(const size_t size) { in slabs_clsid() argument
86 if (size == 0 || size > settings.item_size_max) in slabs_clsid()
88 while (size > slabclass[res].size) in slabs_clsid()
100 unsigned int size = sizeof(item) + settings.chunk_size; in slabs_init() local
122 size = slab_sizes[i-1]; in slabs_init()
123 } else if (size >= settings.slab_chunk_size_max / factor) { in slabs_init()
127 if (size % CHUNK_ALIGN_BYTES) in slabs_init()
128 size += CHUNK_ALIGN_BYTES - (size % CHUNK_ALIGN_BYTES); in slabs_init()
130 slabclass[i].size = size; in slabs_init()
131 slabclass[i].perslab = settings.slab_page_size / slabclass[i].size; in slabs_init()
133 size *= factor; in slabs_init()
136 i, slabclass[i].size, slabclass[i].perslab); in slabs_init()
141 slabclass[power_largest].size = settings.slab_chunk_size_max; in slabs_init()
145 i, slabclass[i].size, slabclass[i].perslab); in slabs_init()
202 ptr += p->size; in split_slab_page_into_freelist()
221 : p->size * p->perslab; 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()
254 unsigned int chunks_req = size / csize; in do_slabs_alloc_chunked()
255 if (size % csize != 0) in do_slabs_alloc_chunked()
281 chunk->size = p->size - sizeof(item_chunk); in do_slabs_alloc_chunked()
307 static void *do_slabs_alloc(const size_t size, unsigned int id, uint64_t *total_bytes, in do_slabs_alloc() argument
314 MEMCACHED_SLABS_ALLOCATE_FAILED(size, 0); in do_slabs_alloc()
323 if (size <= p->size) { 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()
353 MEMCACHED_SLABS_ALLOCATE_FAILED(size, id); in do_slabs_alloc()
359 static void do_slabs_free_chunked(item *it, const size_t size, unsigned int id, in do_slabs_free_chunked() argument
362 size_t realsize = size; in do_slabs_free_chunked()
399 p->requested -= size; in do_slabs_free_chunked()
405 static void do_slabs_free(void *ptr, const size_t size, unsigned int id) { in do_slabs_free() argument
413 MEMCACHED_SLABS_FREE(size, id, ptr); 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()
494 APPEND_NUM_STAT(i, "chunk_size", "%u", p->size); in do_slabs_stats()
532 static void *memory_allocate(size_t size) { in memory_allocate() argument
537 ret = malloc(size); in memory_allocate()
541 if (size > mem_avail) { in memory_allocate()
546 if (size % CHUNK_ALIGN_BYTES) { in memory_allocate()
547 size += CHUNK_ALIGN_BYTES - (size % CHUNK_ALIGN_BYTES); in memory_allocate()
550 mem_current = ((char*)mem_current) + size; in memory_allocate()
551 if (size < mem_avail) { in memory_allocate()
552 mem_avail -= size; in memory_allocate()
557 mem_malloced += size; in memory_allocate()
578 void *slabs_alloc(size_t size, unsigned int id, uint64_t *total_bytes, in slabs_alloc() argument
583 ret = do_slabs_alloc(size, id, total_bytes, flags); in slabs_alloc()
588 void slabs_free(void *ptr, size_t size, unsigned int id) { in slabs_free() argument
590 do_slabs_free(ptr, size, id); in slabs_free()
690 (s_cls->size * s_cls->perslab); in slab_rebalance_start()
711 static void *slab_rebalance_alloc(const size_t size, unsigned int id) { in slab_rebalance_alloc() argument
718 new_it = do_slabs_alloc(size, id, NULL, SLABS_ALLOC_NO_NEWPAGE); in slab_rebalance_alloc()
728 s_cls->requested -= size; in slab_rebalance_alloc()
874 ntotal = s_cls->size; in slab_rebalance_move()
886 (new_it = slab_rebalance_alloc(s_cls->size, slab_rebal.s_clsid)) == NULL) { in slab_rebalance_move()
938 requested_adjust = s_cls->size; in slab_rebalance_move()
972 slab_rebal.slab_pos = (char *)slab_rebal.slab_pos + s_cls->size; in slab_rebalance_move()
1017 slab_rebal.slab_pos = (char *)slab_rebal.slab_pos + s_cls->size; in slab_rebalance_finish()