fix r3331: *) now pools are aligned to 16 bytes *) forbidden to set non-aligned pool sizes
diff --git a/src/core/nginx.c b/src/core/nginx.c index 7387aa1..5df96a4 100644 --- a/src/core/nginx.c +++ b/src/core/nginx.c
@@ -287,9 +287,6 @@ init_cycle.log = log; ngx_cycle = &init_cycle; - /* dummy pagesize to create aligned pool */ - ngx_pagesize = 1024; - init_cycle.pool = ngx_create_pool(1024, log); if (init_cycle.pool == NULL) { return 1;
diff --git a/src/core/ngx_palloc.c b/src/core/ngx_palloc.c index 7db0d7d..35f1311 100644 --- a/src/core/ngx_palloc.c +++ b/src/core/ngx_palloc.c
@@ -17,7 +17,7 @@ { ngx_pool_t *p; - p = ngx_memalign(ngx_min(ngx_pagesize, size), size, log); + p = ngx_memalign(NGX_POOL_ALIGNMENT, size, log); if (p == NULL) { return NULL; } @@ -181,7 +181,7 @@ psize = (size_t) (pool->d.end - (u_char *) pool); - m = ngx_memalign(ngx_min(ngx_pagesize, psize), psize, pool->log); + m = ngx_memalign(NGX_POOL_ALIGNMENT, psize, pool->log); if (m == NULL) { return NULL; }
diff --git a/src/core/ngx_palloc.h b/src/core/ngx_palloc.h index 7706df1..6e6612c 100644 --- a/src/core/ngx_palloc.h +++ b/src/core/ngx_palloc.h
@@ -19,8 +19,11 @@ #define NGX_MAX_ALLOC_FROM_POOL (ngx_pagesize - 1) #define NGX_DEFAULT_POOL_SIZE (16 * 1024) + +#define NGX_POOL_ALIGNMENT 16 #define NGX_MIN_POOL_SIZE \ - (sizeof(ngx_pool_t) + 2 * sizeof(ngx_pool_large_t)) + ngx_align((sizeof(ngx_pool_t) + 2 * sizeof(ngx_pool_large_t)), \ + NGX_POOL_ALIGNMENT) typedef void (*ngx_pool_cleanup_pt)(void *data);
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c index 7de430b..e05487e 100644 --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c
@@ -4318,8 +4318,15 @@ if (*sp < NGX_MIN_POOL_SIZE) { ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, - "pool must be no less than %uz", NGX_MIN_POOL_SIZE); + "the pool size must be no less than %uz", + NGX_MIN_POOL_SIZE); + return NGX_CONF_ERROR; + } + if (*sp % NGX_POOL_ALIGNMENT) { + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, + "the pool size must be a multiple of %uz", + NGX_POOL_ALIGNMENT); return NGX_CONF_ERROR; }