Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Apr 2024 14:44:33 +0200
From:      Krzysztof Galazka <krzysztof.galazka@intel.com>
To:        <freebsd-net@freebsd.org>
Subject:   [iflib] Allow concurrent execution of admin tasks from different interfaces
Message-ID:  <Zh_EMaUocVOWsFws@kgalazka-mobl1.ger.corp.intel.com>

next in thread | raw e-mail | index | archive | help
Hi,

In current iflib implementation there is a single task queue group used
for all admin tasks, defined with:

iflib.c:560 TASKQGROUP_DEFINE(if_config_tqg, 1, 1);

This does not allow for concurrent processing of tasks. In systems with
a large number of interfaces this may cause one long running task
(e.g. related to FW update) to trigger timeouts of other tasks.
Changing that to:

TASKQGROUP_DEFINE(if_config_tqg, mp_cpu, 1);

works, but might be an overkill. I don't see a way to dynamically add
new threads/cpus to already defined taskqgroup though. I'll be grateful
for any suggestions how to approach this issue.

Thanks,
Krzysiek



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Zh_EMaUocVOWsFws>