Ruslan Ermilov
12abb66c41
Slab: simplified allocation from slots.
...
Removed code that would cause an endless loop, and removed condition
check that is always false. The first page in the slot list is
guaranteed to satisfy an allocation.
2016-12-07 22:25:37 +03:00
Ruslan Ermilov
16de9fc3b5
Slab: fixed the number of pages calculation.
...
When estimating the number of pages, do not count memory for slots.
In some cases this gives one extra usable memory page.
2016-12-07 22:25:37 +03:00
Ruslan Ermilov
4cf89436d1
Slab: added comment about list heads.
2016-12-07 22:25:37 +03:00
Ruslan Ermilov
86f846a8bb
Slab: improved code readability.
...
No functional changes.
2016-12-07 22:25:37 +03:00
Ruslan Ermilov
cdd0cd6e2c
Slab: improved double free detection.
...
Previously, an attempt to double free the starting page of the
free range was not detected.
2016-12-03 10:01:39 +03:00
Ruslan Ermilov
34b41a70a6
Slab: always show the requested allocation size in debug messages.
...
Previously, allocations smaller than min_size were shown as min_size.
2016-12-03 10:01:03 +03:00
Ruslan Ermilov
3df657f6fd
Slab: style.
...
Removed redundant parentheses. No functional changes.
2016-12-03 09:55:40 +03:00
Sergey Kandaurov
00ef9ff5f0
Fixed logging.
2016-03-31 02:33:57 +03:00
Ruslan Ermilov
7ad57da598
Style.
2016-03-30 11:52:16 +03:00
Jianjun Zheng
584692027b
Core: bugfix for the ngx_slab_max_size case.
2014-06-18 16:39:59 +08:00
Ruslan Ermilov
05d717b35d
Core: added ngx_slab_calloc() and ngx_slab_calloc_locked().
...
These functions return zeroed memory, analogous to ngx_pcalloc().
2014-06-04 15:09:19 +04:00
Maxim Dounin
afb4aafc6e
Core: slab allocator free pages defragmentation.
...
Large allocations from a slab pool result in free page blocks being fragmented,
eventually leading to a situation when no further allocation larger than a page
size are possible from the pool. While this isn't a problem for nginx itself,
it is known to be bad for various 3rd party modules. Fix is to merge adjacent
blocks of free pages in the ngx_slab_free_pages() function.
Prodded by Wandenberg Peixoto and Yichun Zhang.
2014-06-03 17:53:03 +04:00
Maxim Dounin
23f6689846
Core: slab log_nomem flag.
...
The flag allows to suppress "ngx_slab_alloc() failed: no memory" messages
from a slab allocator, e.g., if an LRU expiration is used by a consumer
and allocation failures aren't fatal.
The flag is now used in the SSL session cache code, and in the limit_req
module.
2014-03-31 21:38:30 +04:00
Maxim Dounin
2b0dba578f
Handling of ngx_int_t != intptr_t case.
...
Casts between pointers and integers produce warnings on size mismatch. To
silence them, cast to (u)intptr_t should be used. Prevoiusly, casts to
ngx_(u)int_t were used in some cases, and several ngx_int_t expressions had
no casts.
As of now it's mostly style as ngx_int_t is defined as intptr_t.
2013-09-04 21:16:59 +04:00
Ruslan Ermilov
9d6d33a561
Fixed overflow if ngx_slab_alloc() is called with very big "size" argument.
2012-08-30 15:09:21 +00:00
Ruslan Ermilov
01f07bde7e
Reduced the number of preprocessor directives.
2012-07-26 14:47:42 +00:00
Maxim Konovalov
f8d59e33f3
Copyright updated.
2012-01-18 15:07:43 +00:00
Igor Sysoev
ba71972b21
Using of junk value in slab allocator similar to modern FreeBSD values.
2011-10-24 15:50:19 +00:00
Igor Sysoev
efc6ecab82
malloc() debugging on MacOSX.
2011-10-24 15:46:48 +00:00
Igor Sysoev
5234b9c6a8
fix building by BCC without NGX_DEBUG_MALLOC
2009-04-15 19:44:41 +00:00
Igor Sysoev
a2c8d9a0a8
improve ngx_slab_alloc() error logging
2009-03-27 17:00:42 +00:00
Igor Sysoev
04fe40023a
delete old debugging and info
2009-03-27 16:37:39 +00:00
Igor Sysoev
4b2844b8a0
fix slab page or more sized allocations if nginx was build without debug
2009-01-25 10:39:59 +00:00
Igor Sysoev
19961d20ce
style fix
2009-01-12 15:36:30 +00:00
Igor Sysoev
5e593aa34e
take MALLOC_OPTIONS=J into account in slab allocator
2007-12-22 11:06:53 +00:00
Igor Sysoev
499c05a87b
the simple expression has the same precision without overflow
2007-11-16 18:15:04 +00:00
Igor Sysoev
295b94de9a
fix slab allocator on 64-bit platfroms
2007-01-11 19:13:46 +00:00
Igor Sysoev
7431938b90
fix slab allocator on 64-bit platfroms
2007-01-11 18:58:40 +00:00
Igor Sysoev
5096bd9a92
style fix
2007-01-02 23:12:24 +00:00
Igor Sysoev
c33efcd10a
many bug fixes and ngx_slab_alloc_locked()/ngx_slab_free_locked()
2007-01-02 23:10:42 +00:00
Igor Sysoev
2f899aa56c
fix building on 64-bit platforms
2006-11-27 20:47:55 +00:00
Igor Sysoev
67cd336d88
slab allocator in shared memory
2006-11-20 08:51:45 +00:00
Igor Sysoev
0593b63c6a
undo the previous wrong commit
2006-10-28 14:32:39 +00:00
Igor Sysoev
e6d99d831c
bad commit
2006-10-28 14:20:13 +00:00
Igor Sysoev
ff8da91784
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
2004-09-29 16:00:49 +00:00
Igor Sysoev
d90282d8ba
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
2004-09-28 08:34:51 +00:00
Igor Sysoev
f924e6b694
nginx-0.0.7-2004-06-16-23:36:07 import
2004-06-16 19:36:07 +00:00