<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/core/ngx_slab.h, branch release-1.29.2</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Slab: fixed initialization on win32.</title>
<updated>2017-08-08T12:16:01+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2017-08-08T12:16:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5f628fef3b837b64096f8e064d51963b1396ffb4'/>
<id>5f628fef3b837b64096f8e064d51963b1396ffb4</id>
<content type='text'>
On Windows, a worker process does not call ngx_slab_init() from
ngx_init_zone_pool(), so ngx_slab_max_size, ngx_slab_exact_size,
and ngx_slab_exact_shift were left uninitialized.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Windows, a worker process does not call ngx_slab_init() from
ngx_init_zone_pool(), so ngx_slab_max_size, ngx_slab_exact_size,
and ngx_slab_exact_shift were left uninitialized.
</pre>
</div>
</content>
</entry>
<entry>
<title>Slab: free pages statistics.</title>
<updated>2016-12-07T19:25:37+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2016-12-07T19:25:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5abd39a19734e22a4044af03ede4fdb4b0285d9c'/>
<id>5abd39a19734e22a4044af03ede4fdb4b0285d9c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Slab: slots statistics.</title>
<updated>2016-12-07T19:25:37+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2016-12-07T19:25:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9ccf719be6b922715fc6bdfabf24742eeec46ba4'/>
<id>9ccf719be6b922715fc6bdfabf24742eeec46ba4</id>
<content type='text'>
For each slot, the number of total and used entries, as well as
the number of allocation requests and failures, are tracked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For each slot, the number of total and used entries, as well as
the number of allocation requests and failures, are tracked.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: added ngx_slab_calloc() and ngx_slab_calloc_locked().</title>
<updated>2014-06-04T11:09:19+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2014-06-04T11:09:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=05d717b35d02c493533f6244a85b6c78a59f4272'/>
<id>05d717b35d02c493533f6244a85b6c78a59f4272</id>
<content type='text'>
These functions return zeroed memory, analogous to ngx_pcalloc().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These functions return zeroed memory, analogous to ngx_pcalloc().
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: slab allocator free pages defragmentation.</title>
<updated>2014-06-03T13:53:03+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-03T13:53:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=afb4aafc6e42781068ce3f23d22fd6e2012787c7'/>
<id>afb4aafc6e42781068ce3f23d22fd6e2012787c7</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: slab log_nomem flag.</title>
<updated>2014-03-31T17:38:30+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-03-31T17:38:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=23f66898463308fdc70ab2659273fb9804f29370'/>
<id>23f66898463308fdc70ab2659273fb9804f29370</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Copyright updated.</title>
<updated>2012-01-18T15:07:43+00:00</updated>
<author>
<name>Maxim Konovalov</name>
<email>maxim@nginx.com</email>
</author>
<published>2012-01-18T15:07:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f8d59e33f34185c28d1d3c6625a897e214b7ca73'/>
<id>f8d59e33f34185c28d1d3c6625a897e214b7ca73</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added shmtx interface to forcibly unlock mutexes.</title>
<updated>2011-11-23T13:55:38+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2011-11-23T13:55:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=91ecc8f43c42c677cd7b2230a68f19b64b649ba5'/>
<id>91ecc8f43c42c677cd7b2230a68f19b64b649ba5</id>
<content type='text'>
It is currently used from master process on abnormal worker termination to
unlock accept mutex (unlocking of accept mutex was broken in 1.0.2).  It is
expected to be used in the future to unlock other mutexes as well.

Shared mutex code was rewritten to make this possible in a safe way, i.e.
with a check if lock was actually held by the exited process.  We again use
pid to lock mutex, and use separate atomic variable for a count of processes
waiting in sem_wait().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is currently used from master process on abnormal worker termination to
unlock accept mutex (unlocking of accept mutex was broken in 1.0.2).  It is
expected to be used in the future to unlock other mutexes as well.

Shared mutex code was rewritten to make this possible in a safe way, i.e.
with a check if lock was actually held by the exited process.  We again use
pid to lock mutex, and use separate atomic variable for a count of processes
waiting in sem_wait().
</pre>
</div>
</content>
</entry>
<entry>
<title>test that zone has the same addresses in different processes</title>
<updated>2009-06-02T13:57:59+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2009-06-02T13:57:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a119584e66692489eb60e505ded1c33b32ba12c6'/>
<id>a119584e66692489eb60e505ded1c33b32ba12c6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>support attaching to an existent Win32 shared memory</title>
<updated>2009-04-18T19:27:28+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2009-04-18T19:27:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f7a08d5f9ab224c7d3751693c1ba159a5d6d5900'/>
<id>f7a08d5f9ab224c7d3751693c1ba159a5d6d5900</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
