Slab: free pages statistics.
diff --git a/src/core/ngx_slab.c b/src/core/ngx_slab.c
index cc2e0b6..6695bb3 100644
--- a/src/core/ngx_slab.c
+++ b/src/core/ngx_slab.c
@@ -154,6 +154,7 @@
}
pool->last = pool->pages + pages;
+ pool->pfree = pages;
pool->log_nomem = 1;
pool->log_ctx = &pool->zero;
@@ -691,6 +692,8 @@
page->next = NULL;
page->prev = NGX_SLAB_PAGE;
+ pool->pfree -= pages;
+
if (--pages == 0) {
return page;
}
@@ -721,6 +724,8 @@
{
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
index bd19321..eff893c 100644
--- a/src/core/ngx_slab.h
+++ b/src/core/ngx_slab.h
@@ -42,6 +42,7 @@
ngx_slab_page_t free;
ngx_slab_stat_t *stats;
+ ngx_uint_t pfree;
u_char *start;
u_char *end;