mirror of
https://github.com/nginx/nginx.git
synced 2024-12-03 21:18:59 +08:00
fix r3331:
*) now pools are aligned to 16 bytes *) forbidden to set non-aligned pool sizes
This commit is contained in:
parent
a75362dcdb
commit
04799a6f7c
@ -287,9 +287,6 @@ main(int argc, char *const *argv)
|
||||
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;
|
||||
|
@ -17,7 +17,7 @@ ngx_create_pool(size_t size, ngx_log_t *log)
|
||||
{
|
||||
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 @@ ngx_palloc_block(ngx_pool_t *pool, size_t size)
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -4318,8 +4318,15 @@ ngx_http_core_pool_size(ngx_conf_t *cf, void *post, void *data)
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user