From: Witold Kręcicki Date: Fri, 23 Nov 2018 11:15:50 +0000 (+0000) Subject: Make task quantum dynamic: smaller if there are more tasks waiting. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=91788ada319847d87d05349616ea03585ff6459e;p=thirdparty%2Fbind9.git Make task quantum dynamic: smaller if there are more tasks waiting. --- diff --git a/bin/delv/delv.c b/bin/delv/delv.c index 8754d1b328d..658400b88a7 100644 --- a/bin/delv/delv.c +++ b/bin/delv/delv.c @@ -1623,7 +1623,7 @@ main(int argc, char *argv[]) { fatal("failed to create mctx"); CHECK(isc_appctx_create(mctx, &actx)); - CHECK(isc_taskmgr_createinctx(mctx, actx, 1, 0, &taskmgr)); + CHECK(isc_taskmgr_createinctx(mctx, actx, 1, &taskmgr)); CHECK(isc_socketmgr_createinctx(mctx, actx, &socketmgr)); CHECK(isc_timermgr_createinctx(mctx, actx, &timermgr)); diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index 2b6cab552e8..d588c910b18 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -1363,7 +1363,7 @@ setup_libs(void) { isc_log_setdebuglevel(lctx, 0); - result = isc_taskmgr_create(mctx, 1, 0, &taskmgr); + result = isc_taskmgr_create(mctx, 1, &taskmgr); check_result(result, "isc_taskmgr_create"); result = isc_task_create(taskmgr, 0, &global_task); diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index 7e2e6c67c1c..0dc23bded5c 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -3853,7 +3853,7 @@ main(int argc, char *argv[]) { print_time(outfp); print_version(outfp); - result = isc_taskmgr_create(mctx, ntasks, 0, &taskmgr); + result = isc_taskmgr_create(mctx, ntasks, &taskmgr); if (result != ISC_R_SUCCESS) fatal("failed to create task manager: %s", isc_result_totext(result)); diff --git a/bin/named/main.c b/bin/named/main.c index 7c1d1fa6f1d..15f048e04d1 100644 --- a/bin/named/main.c +++ b/bin/named/main.c @@ -803,7 +803,7 @@ create_managers(void) { "using %u UDP listener%s per interface", named_g_udpdisp, named_g_udpdisp == 1 ? "" : "s"); - result = isc_taskmgr_create(named_g_mctx, named_g_cpus, 0, + result = isc_taskmgr_create(named_g_mctx, named_g_cpus, &named_g_taskmgr); if (result != ISC_R_SUCCESS) { UNEXPECTED_ERROR(__FILE__, __LINE__, diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c index 7ffba6be547..5d2ed676395 100644 --- a/bin/nsupdate/nsupdate.c +++ b/bin/nsupdate/nsupdate.c @@ -885,7 +885,7 @@ setup_system(void) { result = isc_timermgr_create(gmctx, &timermgr); check_result(result, "dns_timermgr_create"); - result = isc_taskmgr_create(gmctx, 1, 0, &taskmgr); + result = isc_taskmgr_create(gmctx, 1, &taskmgr); check_result(result, "isc_taskmgr_create"); result = isc_task_create(taskmgr, 0, &global_task); diff --git a/bin/rndc/rndc.c b/bin/rndc/rndc.c index 48682de9db2..497efe2e62f 100644 --- a/bin/rndc/rndc.c +++ b/bin/rndc/rndc.c @@ -934,7 +934,7 @@ main(int argc, char **argv) { DO("create memory context", isc_mem_create(0, 0, &rndc_mctx)); DO("create socket manager", isc_socketmgr_create(rndc_mctx, &socketmgr)); - DO("create task manager", isc_taskmgr_create(rndc_mctx, 1, 0, &taskmgr)); + DO("create task manager", isc_taskmgr_create(rndc_mctx, 1, &taskmgr)); DO("create task", isc_task_create(taskmgr, 0, &task)); DO("create logging context", isc_log_create(rndc_mctx, &log, &logconfig)); diff --git a/bin/tests/optional/adb_test.c b/bin/tests/optional/adb_test.c index 8eeef45a473..d36c00f8964 100644 --- a/bin/tests/optional/adb_test.c +++ b/bin/tests/optional/adb_test.c @@ -146,7 +146,7 @@ create_managers(void) { isc_result_t result; taskmgr = NULL; - result = isc_taskmgr_create(mctx, 5, 0, &taskmgr); + result = isc_taskmgr_create(mctx, 5, &taskmgr); check_result(result, "isc_taskmgr_create"); timermgr = NULL; diff --git a/bin/tests/optional/byaddr_test.c b/bin/tests/optional/byaddr_test.c index 05e6c5ded31..2670a9077a9 100644 --- a/bin/tests/optional/byaddr_test.c +++ b/bin/tests/optional/byaddr_test.c @@ -114,7 +114,7 @@ main(int argc, char *argv[]) { } taskmgr = NULL; - RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &taskmgr) + RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, &taskmgr) == ISC_R_SUCCESS); task = NULL; RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task) diff --git a/bin/tests/optional/byname_test.c b/bin/tests/optional/byname_test.c index c48baec0bd1..f4658aff472 100644 --- a/bin/tests/optional/byname_test.c +++ b/bin/tests/optional/byname_test.c @@ -228,7 +228,7 @@ main(int argc, char *argv[]) { } taskmgr = NULL; - RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &taskmgr) == + RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, &taskmgr) == ISC_R_SUCCESS); task = NULL; RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task) == diff --git a/bin/tests/optional/gsstest.c b/bin/tests/optional/gsstest.c index badb346609a..d09daca806d 100644 --- a/bin/tests/optional/gsstest.c +++ b/bin/tests/optional/gsstest.c @@ -472,7 +472,7 @@ main(int argc, char *argv[]) { RUNCHECK(dst_lib_init(mctx, NULL)); taskmgr = NULL; - RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); + RUNCHECK(isc_taskmgr_create(mctx, 1, &taskmgr)); task = NULL; RUNCHECK(isc_task_create(taskmgr, 0, &task)); timermgr = NULL; diff --git a/bin/tests/optional/ratelimiter_test.c b/bin/tests/optional/ratelimiter_test.c index 02eadace526..a405e05df45 100644 --- a/bin/tests/optional/ratelimiter_test.c +++ b/bin/tests/optional/ratelimiter_test.c @@ -104,8 +104,7 @@ main(int argc, char *argv[]) { isc_interval_set(&linterval, 1, 0); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); - RUNTIME_CHECK(isc_taskmgr_create(mctx, 3, 0, &taskmgr) == - ISC_R_SUCCESS); + RUNTIME_CHECK(isc_taskmgr_create(mctx, 3, &taskmgr) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_timermgr_create(mctx, &timermgr) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_task_create(taskmgr, 0, &g_task) == diff --git a/bin/tests/optional/shutdown_test.c b/bin/tests/optional/shutdown_test.c index 1eeaf07ea77..e2fe58e062e 100644 --- a/bin/tests/optional/shutdown_test.c +++ b/bin/tests/optional/shutdown_test.c @@ -183,7 +183,7 @@ main(int argc, char *argv[]) { RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); mctx2 = NULL; RUNTIME_CHECK(isc_mem_create(0, 0, &mctx2) == ISC_R_SUCCESS); - RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &task_manager) == + RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, &task_manager) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_timermgr_create(mctx, &timer_manager) == ISC_R_SUCCESS); diff --git a/bin/tests/optional/sig0_test.c b/bin/tests/optional/sig0_test.c index 9db47c66b8c..7b6d8f72e72 100644 --- a/bin/tests/optional/sig0_test.c +++ b/bin/tests/optional/sig0_test.c @@ -228,8 +228,7 @@ main(int argc, char *argv[]) { dst_result_register(); taskmgr = NULL; - RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, 0, &taskmgr) == - ISC_R_SUCCESS); + RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, &taskmgr) == ISC_R_SUCCESS); task1 = NULL; RUNTIME_CHECK(isc_task_create(taskmgr, 0, &task1) == ISC_R_SUCCESS); diff --git a/bin/tests/optional/sock_test.c b/bin/tests/optional/sock_test.c index f13a3ffe64c..54b813987ff 100644 --- a/bin/tests/optional/sock_test.c +++ b/bin/tests/optional/sock_test.c @@ -297,7 +297,7 @@ main(int argc, char *argv[]) { * The task manager is independent (other than memory context) */ manager = NULL; - RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &manager) == + RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, &manager) == ISC_R_SUCCESS); /* diff --git a/bin/tests/optional/task_test.c b/bin/tests/optional/task_test.c index 10880103492..3f823302fd6 100644 --- a/bin/tests/optional/task_test.c +++ b/bin/tests/optional/task_test.c @@ -81,7 +81,7 @@ main(int argc, char *argv[]) { RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); - RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &manager) == + RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, &manager) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_task_create(manager, 0, &t1) == ISC_R_SUCCESS); diff --git a/bin/tests/optional/timer_test.c b/bin/tests/optional/timer_test.c index 53d3b35ca22..580a7eb8488 100644 --- a/bin/tests/optional/timer_test.c +++ b/bin/tests/optional/timer_test.c @@ -110,7 +110,7 @@ main(int argc, char *argv[]) { printf("%u workers\n", workers); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx1) == ISC_R_SUCCESS); - RUNTIME_CHECK(isc_taskmgr_create(mctx1, workers, 0, &manager) == + RUNTIME_CHECK(isc_taskmgr_create(mctx1, workers, &manager) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_timermgr_create(mctx1, &timgr) == ISC_R_SUCCESS); diff --git a/bin/tests/optional/zone_test.c b/bin/tests/optional/zone_test.c index b26acea0b17..3b8406d3ff0 100644 --- a/bin/tests/optional/zone_test.c +++ b/bin/tests/optional/zone_test.c @@ -284,7 +284,7 @@ main(int argc, char **argv) { RUNTIME_CHECK(isc_app_start() == ISC_R_SUCCESS); RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); - RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, 0, &taskmgr) == + RUNTIME_CHECK(isc_taskmgr_create(mctx, 2, &taskmgr) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_timermgr_create(mctx, &timermgr) == ISC_R_SUCCESS); RUNTIME_CHECK(isc_socketmgr_create(mctx, &socketmgr) == ISC_R_SUCCESS); diff --git a/bin/tests/system/pipelined/pipequeries.c b/bin/tests/system/pipelined/pipequeries.c index 74de833fc16..9d8dddc2160 100644 --- a/bin/tests/system/pipelined/pipequeries.c +++ b/bin/tests/system/pipelined/pipequeries.c @@ -279,7 +279,7 @@ main(int argc, char *argv[]) { RUNCHECK(dst_lib_init(mctx, NULL)); taskmgr = NULL; - RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); + RUNCHECK(isc_taskmgr_create(mctx, 1, &taskmgr)); task = NULL; RUNCHECK(isc_task_create(taskmgr, 0, &task)); timermgr = NULL; diff --git a/bin/tests/system/tkey/keycreate.c b/bin/tests/system/tkey/keycreate.c index c39f6a4ec18..935ee7bb6a9 100644 --- a/bin/tests/system/tkey/keycreate.c +++ b/bin/tests/system/tkey/keycreate.c @@ -239,7 +239,7 @@ main(int argc, char *argv[]) { RUNCHECK(dst_lib_init(mctx, NULL)); taskmgr = NULL; - RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); + RUNCHECK(isc_taskmgr_create(mctx, 1, &taskmgr)); task = NULL; RUNCHECK(isc_task_create(taskmgr, 0, &task)); timermgr = NULL; diff --git a/bin/tests/system/tkey/keydelete.c b/bin/tests/system/tkey/keydelete.c index 547e8d03d3e..465076edafb 100644 --- a/bin/tests/system/tkey/keydelete.c +++ b/bin/tests/system/tkey/keydelete.c @@ -178,7 +178,7 @@ main(int argc, char **argv) { RUNCHECK(dst_lib_init(mctx, NULL)); taskmgr = NULL; - RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); + RUNCHECK(isc_taskmgr_create(mctx, 1, &taskmgr)); task = NULL; RUNCHECK(isc_task_create(taskmgr, 0, &task)); timermgr = NULL; diff --git a/bin/tools/mdig.c b/bin/tools/mdig.c index 35942687fe3..39a3c16dd8b 100644 --- a/bin/tools/mdig.c +++ b/bin/tools/mdig.c @@ -1981,7 +1981,7 @@ main(int argc, char *argv[]) { fatal("can't choose between IPv4 and IPv6"); taskmgr = NULL; - RUNCHECK(isc_taskmgr_create(mctx, 1, 0, &taskmgr)); + RUNCHECK(isc_taskmgr_create(mctx, 1, &taskmgr)); task = NULL; RUNCHECK(isc_task_create(taskmgr, 0, &task)); timermgr = NULL; diff --git a/lib/dns/client.c b/lib/dns/client.c index 9b7a212cf76..bb73a6b490b 100644 --- a/lib/dns/client.c +++ b/lib/dns/client.c @@ -379,7 +379,7 @@ dns_client_create(dns_client_t **clientp, unsigned int options) { result = isc_app_ctxstart(actx); if (result != ISC_R_SUCCESS) goto cleanup; - result = isc_taskmgr_createinctx(mctx, actx, 1, 0, &taskmgr); + result = isc_taskmgr_createinctx(mctx, actx, 1, &taskmgr); if (result != ISC_R_SUCCESS) goto cleanup; result = isc_socketmgr_createinctx(mctx, actx, &socketmgr); diff --git a/lib/dns/dispatch.c b/lib/dns/dispatch.c index b6fdd52051e..b1512545114 100644 --- a/lib/dns/dispatch.c +++ b/lib/dns/dispatch.c @@ -2468,7 +2468,7 @@ dns_dispatch_createtcp(dns_dispatchmgr_t *mgr, isc_socket_t *sock, disp->ntasks = 1; disp->task[0] = NULL; - result = isc_task_create(taskmgr, 50, &disp->task[0]); + result = isc_task_create(taskmgr, 0, &disp->task[0]); if (result != ISC_R_SUCCESS) goto kill_socket; diff --git a/lib/dns/tests/dnstest.c b/lib/dns/tests/dnstest.c index c2f927095d9..303ed77e2e4 100644 --- a/lib/dns/tests/dnstest.c +++ b/lib/dns/tests/dnstest.c @@ -109,7 +109,7 @@ create_managers(void) { isc_result_t result; ncpus = isc_os_ncpus(); - CHECK(isc_taskmgr_create(mctx, ncpus, 0, &taskmgr)); + CHECK(isc_taskmgr_create(mctx, ncpus, &taskmgr)); CHECK(isc_timermgr_create(mctx, &timermgr)); CHECK(isc_socketmgr_create(mctx, &socketmgr)); CHECK(isc_task_create(taskmgr, 0, &maintask)); diff --git a/lib/irs/context.c b/lib/irs/context.c index 1e56786b09d..28873babb19 100644 --- a/lib/irs/context.c +++ b/lib/irs/context.c @@ -104,7 +104,7 @@ ctxs_init(isc_mem_t **mctxp, isc_appctx_t **actxp, if (result != ISC_R_SUCCESS) goto fail; - result = isc_taskmgr_createinctx(*mctxp, *actxp, 1, 0, taskmgrp); + result = isc_taskmgr_createinctx(*mctxp, *actxp, 1, taskmgrp); if (result != ISC_R_SUCCESS) goto fail; diff --git a/lib/isc/include/isc/task.h b/lib/isc/include/isc/task.h index b2d9c483846..239dfb664ee 100644 --- a/lib/isc/include/isc/task.h +++ b/lib/isc/include/isc/task.h @@ -631,11 +631,10 @@ isc_task_privilege(isc_task_t *task); isc_result_t isc_taskmgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx, - unsigned int workers, unsigned int default_quantum, - isc_taskmgr_t **managerp); + unsigned int workers, isc_taskmgr_t **managerp); isc_result_t isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers, - unsigned int default_quantum, isc_taskmgr_t **managerp); + isc_taskmgr_t **managerp); /*%< * Create a new task manager. isc_taskmgr_createinctx() also associates * the new manager with the specified application context. @@ -648,10 +647,6 @@ isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers, * create 'workers' threads, but if at least one thread creation * succeeds, isc_taskmgr_create() may return ISC_R_SUCCESS. * - *\li If 'default_quantum' is non-zero, then it will be used as the default - * quantum value when tasks are created. If zero, then an implementation - * defined default quantum will be used. - * * Requires: * *\li 'mctx' is a valid memory context. diff --git a/lib/isc/task.c b/lib/isc/task.c index a51d3359abf..fcd4cd9a489 100644 --- a/lib/isc/task.c +++ b/lib/isc/task.c @@ -134,6 +134,7 @@ struct isc__taskqueue { isc_condition_t work_available; isc_thread_t thread; unsigned int threadid; + unsigned int tasks_waiting; isc__taskmgr_t *manager; }; @@ -151,7 +152,6 @@ struct isc__taskmgr { isc__taskqueue_t *queues; /* Locked by task manager lock. */ - unsigned int default_quantum; LIST(isc__task_t) tasks; isc_taskmgrmode_t mode; bool pause_requested; @@ -176,7 +176,17 @@ void isc__taskmgr_resume(isc_taskmgr_t *manager0); -#define DEFAULT_DEFAULT_QUANTUM 25 +/* + * Unless specified otherwise when creating task we normally run + * DEFAULT_QUANTUM events from a task in a single worker loop. + * If there are more than CONGESTED_TASK_LIMIT tasks waiting in the same queue + * we switch to CONGESTED_QUANTUM tasks per loop. + */ + +#define DEFAULT_QUANTUM 25 +#define CONGESTED_QUANTUM 10 +#define CONGESTED_TASK_LIMIT 5 + #define FINISHED(m) ((m)->exiting && EMPTY((m)->tasks)) /*% @@ -292,7 +302,7 @@ isc_task_create_bound(isc_taskmgr_t *manager0, unsigned int quantum, INIT_LIST(task->events); INIT_LIST(task->on_shutdown); task->nevents = 0; - task->quantum = (quantum > 0) ? quantum : manager->default_quantum; + task->quantum = quantum; task->flags = 0; task->now = 0; isc_time_settoepoch(&task->tnow); @@ -932,6 +942,7 @@ pop_readyq(isc__taskmgr_t *manager, int c) { if (task != NULL) { DEQUEUE(manager->queues[c].ready_tasks, task, ready_link); + manager->queues[c].tasks_waiting--; if (ISC_LINK_LINKED(task, ready_priority_link)) { DEQUEUE(manager->queues[c].ready_priority_tasks, task, ready_priority_link); @@ -950,6 +961,7 @@ pop_readyq(isc__taskmgr_t *manager, int c) { static inline void push_readyq(isc__taskmgr_t *manager, isc__task_t *task, int c) { ENQUEUE(manager->queues[c].ready_tasks, task, ready_link); + manager->queues[c].tasks_waiting++; if ((task->flags & TASK_F_PRIVILEGED) != 0) { ENQUEUE(manager->queues[c].ready_priority_tasks, task, ready_priority_link); @@ -1095,6 +1107,16 @@ dispatch(isc__taskmgr_t *manager, unsigned int threadid) { task = pop_readyq(manager, threadid); if (task != NULL) { unsigned int dispatch_count = 0; + unsigned int quantum = task->quantum; + if (quantum == 0) { + if (manager->queues[threadid].tasks_waiting + < CONGESTED_TASK_LIMIT) + { + quantum = DEFAULT_QUANTUM; + } else { + quantum = CONGESTED_QUANTUM; + } + } bool done = false; bool requeue = false; bool finished = false; @@ -1201,7 +1223,7 @@ dispatch(isc__taskmgr_t *manager, unsigned int threadid) { } else task->state = task_state_idle; done = true; - } else if (dispatch_count >= task->quantum) { + } else if (dispatch_count >= quantum) { /* * Our quantum has expired, but * there is more work to be done. @@ -1343,7 +1365,7 @@ manager_free(isc__taskmgr_t *manager) { isc_result_t isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers, - unsigned int default_quantum, isc_taskmgr_t **managerp) + isc_taskmgr_t **managerp) { unsigned int i; isc__taskmgr_t *manager; @@ -1369,10 +1391,6 @@ isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers, manager->workers = workers; - if (default_quantum == 0) { - default_quantum = DEFAULT_DEFAULT_QUANTUM; - } - manager->default_quantum = default_quantum; INIT_LIST(manager->tasks); manager->queues = isc_mem_get(mctx, workers * sizeof(isc__taskqueue_t)); RUNTIME_CHECK(manager->queues != NULL); @@ -1400,6 +1418,7 @@ isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers, manager->queues[i].manager = manager; manager->queues[i].threadid = i; + manager->queues[i].tasks_waiting = 0; RUNTIME_CHECK(isc_thread_create(run, &manager->queues[i], &manager->queues[i].thread) == ISC_R_SUCCESS); @@ -1708,11 +1727,6 @@ isc_taskmgr_renderxml(isc_taskmgr_t *mgr0, xmlTextWriterPtr writer) { TRY0(xmlTextWriterWriteFormatString(writer, "%d", mgr->workers)); TRY0(xmlTextWriterEndElement(writer)); /* worker-threads */ - TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "default-quantum")); - TRY0(xmlTextWriterWriteFormatString(writer, "%d", - mgr->default_quantum)); - TRY0(xmlTextWriterEndElement(writer)); /* default-quantum */ - TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "tasks-running")); TRY0(xmlTextWriterWriteFormatString(writer, "%d", (int) mgr->tasks_running)); @@ -1809,10 +1823,6 @@ isc_taskmgr_renderjson(isc_taskmgr_t *mgr0, json_object *tasks) { CHECKMEM(obj); json_object_object_add(tasks, "worker-threads", obj); - obj = json_object_new_int(mgr->default_quantum); - CHECKMEM(obj); - json_object_object_add(tasks, "default-quantum", obj); - obj = json_object_new_int(mgr->tasks_running); CHECKMEM(obj); json_object_object_add(tasks, "tasks-running", obj); @@ -1885,13 +1895,11 @@ isc_taskmgr_renderjson(isc_taskmgr_t *mgr0, json_object *tasks) { isc_result_t isc_taskmgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx, - unsigned int workers, unsigned int default_quantum, - isc_taskmgr_t **managerp) + unsigned int workers, isc_taskmgr_t **managerp) { isc_result_t result; - result = isc_taskmgr_create(mctx, workers, default_quantum, - managerp); + result = isc_taskmgr_create(mctx, workers, managerp); if (result == ISC_R_SUCCESS) isc_appctx_settaskmgr(actx, *managerp); diff --git a/lib/isc/tests/isctest.c b/lib/isc/tests/isctest.c index 66ca877e03e..79e27ccb1cc 100644 --- a/lib/isc/tests/isctest.c +++ b/lib/isc/tests/isctest.c @@ -86,7 +86,7 @@ create_managers(unsigned int workers) { workers = atoi(p); } - CHECK(isc_taskmgr_create(mctx, workers, 0, &taskmgr)); + CHECK(isc_taskmgr_create(mctx, workers, &taskmgr)); CHECK(isc_task_create(taskmgr, 0, &maintask)); isc_taskmgr_setexcltask(taskmgr, maintask); diff --git a/lib/isc/tests/task_test.c b/lib/isc/tests/task_test.c index 18c1717b9a0..f23d6b85c90 100644 --- a/lib/isc/tests/task_test.c +++ b/lib/isc/tests/task_test.c @@ -712,7 +712,7 @@ manytasks(void **state) { result = isc_mem_create(0, 0, &mctx); assert_int_equal(result, ISC_R_SUCCESS); - result = isc_taskmgr_create(mctx, 4, 0, &taskmgr); + result = isc_taskmgr_create(mctx, 4, &taskmgr); assert_int_equal(result, ISC_R_SUCCESS); done = false; diff --git a/lib/ns/tests/nstest.c b/lib/ns/tests/nstest.c index 85c641bcd48..ac75a6991c4 100644 --- a/lib/ns/tests/nstest.c +++ b/lib/ns/tests/nstest.c @@ -182,7 +182,7 @@ create_managers(void) { isc_event_t *event = NULL; ncpus = isc_os_ncpus(); - CHECK(isc_taskmgr_create(mctx, ncpus, 0, &taskmgr)); + CHECK(isc_taskmgr_create(mctx, ncpus, &taskmgr)); CHECK(isc_task_create(taskmgr, 0, &maintask)); isc_taskmgr_setexcltask(taskmgr, maintask); CHECK(isc_task_onshutdown(maintask, shutdown_managers, NULL)); diff --git a/lib/samples/nsprobe.c b/lib/samples/nsprobe.c index 2fb49b1b616..3178fc12f4d 100644 --- a/lib/samples/nsprobe.c +++ b/lib/samples/nsprobe.c @@ -226,7 +226,7 @@ ctxs_init(isc_mem_t **mctxp, isc_appctx_t **actxp, if (result != ISC_R_SUCCESS) goto fail; - result = isc_taskmgr_createinctx(*mctxp, *actxp, 1, 0, taskmgrp); + result = isc_taskmgr_createinctx(*mctxp, *actxp, 1, taskmgrp); if (result != ISC_R_SUCCESS) goto fail; diff --git a/lib/samples/resolve.c b/lib/samples/resolve.c index 7965b3e261f..5424f4f9a6b 100644 --- a/lib/samples/resolve.c +++ b/lib/samples/resolve.c @@ -381,7 +381,7 @@ main(int argc, char *argv[]) { result = isc_app_ctxstart(actx); if (result != ISC_R_SUCCESS) goto cleanup; - result = isc_taskmgr_createinctx(mctx, actx, 1, 0, &taskmgr); + result = isc_taskmgr_createinctx(mctx, actx, 1, &taskmgr); if (result != ISC_R_SUCCESS) goto cleanup; result = isc_socketmgr_createinctx(mctx, actx, &socketmgr); diff --git a/lib/samples/sample-async.c b/lib/samples/sample-async.c index f383fa2a8ea..bf6eb208f00 100644 --- a/lib/samples/sample-async.c +++ b/lib/samples/sample-async.c @@ -108,7 +108,7 @@ ctxs_init(isc_mem_t **mctxp, isc_appctx_t **actxp, if (result != ISC_R_SUCCESS) goto fail; - result = isc_taskmgr_createinctx(*mctxp, *actxp, 1, 0, taskmgrp); + result = isc_taskmgr_createinctx(*mctxp, *actxp, 1, taskmgrp); if (result != ISC_R_SUCCESS) goto fail;