#
07d59e3a |
| 26-Dec-2018 |
thorpej <thorpej@NetBSD.org> |
- De-opaque'ify struct threadpool_job. - De-_t'ify all of the structure types.
No functional chage, no ABI change (verified with old rump unit test before and after new librump.so).
Per Taylor's re
- De-opaque'ify struct threadpool_job. - De-_t'ify all of the structure types.
No functional chage, no ABI change (verified with old rump unit test before and after new librump.so).
Per Taylor's request.
show more ...
|
#
3ada37d6 |
| 24-Dec-2018 |
thorpej <thorpej@NetBSD.org> |
Add threadpool(9), an abstraction that provides shared pools of kernel threads running at specific priorities, with support for unbound pools and per-cpu pools.
Written by riastradh@, and based on t
Add threadpool(9), an abstraction that provides shared pools of kernel threads running at specific priorities, with support for unbound pools and per-cpu pools.
Written by riastradh@, and based on the May 2014 draft, with a few changes by me: - Working on the assumption that a relative few priorities will actually be used, reduce the memory footprint by using linked lists, rather than 2 large (and mostly empty) tables. The performance impact is essentially nil, since these lists are consulted only when pools are created (and destroyed, for DIAGNOSTIC checks), and the lists will have at most 225 entries. - Make threadpool job object, which the caller must allocate storage for, really opaque. - Use typedefs for the threadpool types, to reduce the verbosity of the API somewhat. - Fix a bunch of pool / worker thread / job object lifecycle bugs.
Also include an ATF unit test, written by me, that exercises the basics of the API by loading a kernel module that exposes several sysctls that allow the ATF test script to create and destroy threadpools, schedule a basic job, and verify that it ran.
And thus NetBSD 8.99.29 has arrived.
show more ...
|