diff --git a/include/haproxy/pool-t.h b/include/haproxy/pool-t.h index b6d4d3101..7dc99c182 100644 --- a/include/haproxy/pool-t.h +++ b/include/haproxy/pool-t.h @@ -84,7 +84,6 @@ struct pool_cache_head { struct list list; /* head of objects in this pool */ - size_t size; /* size of an object */ unsigned int count; /* number of objects in this pool */ } THREAD_ALIGNED(64); diff --git a/include/haproxy/pool.h b/include/haproxy/pool.h index ee97135fd..526c57c2d 100644 --- a/include/haproxy/pool.h +++ b/include/haproxy/pool.h @@ -94,7 +94,7 @@ static inline void *__pool_get_from_cache(struct pool_head *pool) item = LIST_NEXT(&ph->list, typeof(item), by_pool); ph->count--; - pool_cache_bytes -= ph->size; + pool_cache_bytes -= pool->size; pool_cache_count--; LIST_DEL(&item->by_pool); LIST_DEL(&item->by_lru); @@ -117,7 +117,7 @@ static inline void pool_put_to_cache(struct pool_head *pool, void *ptr) LIST_ADD(&ti->pool_lru_head, &item->by_lru); ph->count++; pool_cache_count++; - pool_cache_bytes += ph->size; + pool_cache_bytes += pool->size; if (unlikely(pool_cache_bytes > CONFIG_HAP_POOL_CACHE_SIZE)) pool_evict_from_cache(); diff --git a/src/pool.c b/src/pool.c index 4f367d0b3..6f19ec783 100644 --- a/src/pool.c +++ b/src/pool.c @@ -111,7 +111,6 @@ struct pool_head *create_pool(char *name, unsigned int size, unsigned int flags) /* update per-thread pool cache if necessary */ for (thr = 0; thr < MAX_THREADS; thr++) { LIST_INIT(&pool->cache[thr].list); - pool->cache[thr].size = size; } #endif HA_SPIN_INIT(&pool->lock); @@ -141,7 +140,7 @@ void pool_evict_from_cache() LIST_DEL(&item->by_lru); ph->count--; pool_cache_count--; - pool_cache_bytes -= ph->size; + pool_cache_bytes -= pool->size; __pool_free(pool, item); } while (pool_cache_bytes > CONFIG_HAP_POOL_CACHE_SIZE * 7 / 8); }