]> git.kaiwu.me - nginx.git/commitdiff
Slab: free pages statistics.
authorRuslan Ermilov <ru@nginx.com>
Wed, 7 Dec 2016 19:25:37 +0000 (22:25 +0300)
committerRuslan Ermilov <ru@nginx.com>
Wed, 7 Dec 2016 19:25:37 +0000 (22:25 +0300)
src/core/ngx_slab.c
src/core/ngx_slab.h

index cc2e0b650cbc2b3e286fe4e790b8b2ad3129589e..6695bb32787e1a16d7f91eee8c4b6af990c5fe5b 100644 (file)
@@ -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 *pool, ngx_uint_t pages)
             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 *pool, ngx_slab_page_t *page,
 {
     ngx_slab_page_t  *prev, *join;
 
+    pool->pfree += pages;
+
     page->slab = pages--;
 
     if (pages) {
index bd193217b751a2f38236f301162f9951b995b88e..eff893c3e322672d98a93573c9bb6f998c6d4aa1 100644 (file)
@@ -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;