[iflib] Allow concurrent execution of admin tasks from different interfaces

Krzysztof Galazka <[email protected]>
Newsgroups gmane.os.freebsd.devel.net
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.