# HG changeset patch # User Ruslan Ermilov # Date 1481138737 -10800 # Node ID 6e757036e5883c96aff23136423281345a89d97e # Parent 99770a5ea14f74c037e4e25b9c7fb4ae340efee4 Slab: free pages statistics. diff --git a/src/core/ngx_slab.c b/src/core/ngx_slab.c --- a/src/core/ngx_slab.c +++ b/src/core/ngx_slab.c @@ -154,6 +154,7 @@ ngx_slab_init(ngx_slab_pool_t *pool) } pool->last = pool->pages + pages; + pool->pfree = pages; pool->log_nomem = 1; pool->log_ctx = &pool->zero; @@ -691,6 +692,8 @@ ngx_slab_alloc_pages(ngx_slab_pool_t *po page->next = NULL; page->prev = NGX_SLAB_PAGE; + pool->pfree -= pages; + if (--pages == 0) { return page; } @@ -721,6 +724,8 @@ ngx_slab_free_pages(ngx_slab_pool_t *poo { ngx_slab_page_t *prev, *join; + pool->pfree += pages; + page->slab = pages--; if (pages) { diff --git a/src/core/ngx_slab.h b/src/core/ngx_slab.h --- a/src/core/ngx_slab.h +++ b/src/core/ngx_slab.h @@ -42,6 +42,7 @@ typedef struct { ngx_slab_page_t free; ngx_slab_stat_t *stats; + ngx_uint_t pfree; u_char *start; u_char *end;