diff options
author | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2019-11-04 13:50:31 +0000 |
---|---|---|
committer | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2019-12-31 11:51:05 +0000 |
commit | b8f1ef2b02b8709c72408ee4803f442efc9f4576 (patch) | |
tree | 95a16adc465206d351cbf1b823f793c7592f00e7 /app/nginx/src/tldk/parse.c | |
parent | 47eb00f25ab06a699dc27507814c7656940340af (diff) |
v6: make TCP stream alloc/free to use memtank API
Introduce two extra parameters for TCP context creation:
struct {
uint32_t min;
/**< min number of free streams (grow threshold). */
uint32_t max;
/**< max number of free streams (shrink threshold). */
} free_streams;
By default these params are equal to max_streams value
(avoid dynamic allocation and preserve current beahviour).
grow() is invoked from accept() FE call to refill streams tank for BE.
shrink() is invoked from close() FE call.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Change-Id: I7af6a76d64813ee4a535323e27ffbfd75037fc92
Diffstat (limited to 'app/nginx/src/tldk/parse.c')
-rw-r--r-- | app/nginx/src/tldk/parse.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/app/nginx/src/tldk/parse.c b/app/nginx/src/tldk/parse.c index 5d71d9e..6e20b1b 100644 --- a/app/nginx/src/tldk/parse.c +++ b/app/nginx/src/tldk/parse.c @@ -413,6 +413,18 @@ tldk_ctx_parse(ngx_conf_t *cf, ngx_command_t *dummy, void *conf) &pvl) < 0) return NGX_CONF_ERROR; tcx->nb_stream = pvl.u64; + } else if (ngx_strcmp(v[0].data, "min_free_streams") == 0) { + if (cf->args->nelts != 2 || + parse_uint_val((const char *)v[1].data, + &pvl) < 0) + return NGX_CONF_ERROR; + tcx->free_streams.nb_min = pvl.u64; + } else if (ngx_strcmp(v[0].data, "max_free_streams") == 0) { + if (cf->args->nelts != 2 || + parse_uint_val((const char *)v[1].data, + &pvl) < 0) + return NGX_CONF_ERROR; + tcx->free_streams.nb_max = pvl.u64; } else if (ngx_strcmp(v[0].data, "rbufs") == 0) { if (cf->args->nelts != 2 || parse_uint_val((const char *)v[1].data, |