Skip to content
Snippets Groups Projects
Commit e60c8585 authored by Marek Vavruša's avatar Marek Vavruša
Browse files

conf: bg_workers auto-estimate function

parent 9a739f4a
No related branches found
No related tags found
No related merge requests found
......@@ -899,6 +899,16 @@ size_t conf_tcp_threads(const conf_t *conf)
return MAX(thrcount * 2, CONFIG_XFERS);
}
int conf_bg_threads(const conf_t *conf)
{
if (conf->bg_workers < 1) {
return MIN(dt_optimal_size(), CONFIG_XFERS);
}
return conf->bg_workers;
}
void conf_init_zone(conf_zone_t *zone)
{
if (!zone) {
......
......@@ -412,6 +412,9 @@ size_t conf_udp_threads(const conf_t *conf);
/*! \brief Return the number of TCP threads according to the configuration. */
size_t conf_tcp_threads(const conf_t *conf);
/*! \brief Return the number of background worker threads. */
int conf_bg_threads(const conf_t *conf);
/* \brief Initialize zone config. */
void conf_init_zone(conf_zone_t *zone);
......
......@@ -279,7 +279,7 @@ int main(int argc, char **argv)
/* Initialize server. */
server_t server;
res = server_init(&server, config->bg_workers);
res = server_init(&server, conf_bg_threads(config));
if (res != KNOT_EOK) {
log_server_fatal("Could not initialize server: %s\n",
knot_strerror(res));
......
......@@ -291,12 +291,6 @@ int server_init(server_t *server, int bg_workers)
return KNOT_ENOMEM;
}
/* Create zone events threads. */
if (bg_workers < 1) {
bg_workers = dt_optimal_size();
}
assert(bg_workers > 0);
server->workers = worker_pool_create(bg_workers);
if (server->workers == NULL) {
dt_delete(&server->iosched);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment