Suppose, I am allocating a pool of greater than 4k(page size). Say for example I am calling the function ngx_create_pool with 8096.
But, this function will set the max as 4095 even if it has allocated 8K. Not sure, why is it being done like this.
p->max = (size < NGX_MAX_ALLOC_FROM_POOL) ? size : NGX_MAX_ALLOC_FROM_POOL;
I know, I have created a pool with size 8K, now I am allocating say 4K (4096) from this pool. I will call ngx_palloc with 4096. There we check if (size <= pool->max) which in this case will not satisfy and it will go and call ngx_palloc_large which inturn will allocate 4K.
This somehow is not sounding good. Why is ngx_create_pool putting a max value of page size even when it is allocating more. It is not doing chaining also.
Any expert opinions???
Thanks, Santos
But, this function will set the max as 4095 even if it has allocated 8K. Not sure, why is it being done like this.
p->max = (size < NGX_MAX_ALLOC_FROM_POOL) ? size : NGX_MAX_ALLOC_FROM_POOL;
I know, I have created a pool with size 8K, now I am allocating say 4K (4096) from this pool. I will call ngx_palloc with 4096. There we check if (size <= pool->max) which in this case will not satisfy and it will go and call ngx_palloc_large which inturn will allocate 4K.
This somehow is not sounding good. Why is ngx_create_pool putting a max value of page size even when it is allocating more. It is not doing chaining also.
Any expert opinions???
Thanks, Santos