[PATCH] Core: bugfix for the ngx_slab_max_size case

Jianjun Zheng codeeply at gmail.com
Wed Jun 18 09:00:14 UTC 2014


At present, alloting memory with size of ngx_slab_max_size causes

1) an internal fragmentation, size of ngx_slab_max_size, comes into being

2) the slot with index of (ngx_pagesize_shift - pool->min_shift - 1)
    is the right slot for this size.


# HG changeset patch
# User Jianjun Zheng <codeeply at gmail.com>
# Date 1403080799 -28800
#      Wed Jun 18 16:39:59 2014 +0800
# Node ID 1704335dd810e2e2abb2b393b4f7b7c9004c6012
# Parent  ec919574cc14f7781c0ca212cffec586f88eec40
Core: bugfix for the ngx_slab_max_size case

diff -r ec919574cc14 -r 1704335dd810 src/core/ngx_slab.c
--- a/src/core/ngx_slab.c Tue Jun 17 16:51:25 2014 +0400
+++ b/src/core/ngx_slab.c Wed Jun 18 16:39:59 2014 +0800
@@ -160,7 +160,7 @@
     ngx_uint_t        i, slot, shift, map;
     ngx_slab_page_t  *page, *prev, *slots;

-    if (size >= ngx_slab_max_size) {
+    if (size > ngx_slab_max_size) {

         ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, ngx_cycle->log, 0,
                        "slab alloc: %uz", size);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20140618/72722a81/attachment.html>


More information about the nginx-devel mailing list