--- - branch: MAIN date: Mon Dec 24 16:58:54 UTC 2018 files: - new: '1.2245' old: '1.2244' path: src/distrib/sets/lists/comp/mi pathrev: src/distrib/sets/lists/comp/mi@1.2245 type: modified - new: '1.799' old: '1.798' path: src/distrib/sets/lists/tests/mi pathrev: src/distrib/sets/lists/tests/mi@1.799 type: modified - new: '1.14' old: '1.13' path: src/distrib/sets/lists/tests/module.mi pathrev: src/distrib/sets/lists/tests/module.mi@1.14 type: modified - new: '1.434' old: '1.433' path: src/share/man/man9/Makefile pathrev: src/share/man/man9/Makefile@1.434 type: modified - new: '1.1' old: '0' path: src/share/man/man9/threadpool.9 pathrev: src/share/man/man9/threadpool.9@1.1 type: added - new: '1.29' old: '1.28' path: src/sys/kern/files.kern pathrev: src/sys/kern/files.kern@1.29 type: modified - new: '1.1' old: '0' path: src/sys/kern/kern_threadpool.c pathrev: src/sys/kern/kern_threadpool.c@1.1 type: added - new: '1.173' old: '1.172' path: src/sys/rump/librump/rumpkern/Makefile.rumpkern pathrev: src/sys/rump/librump/rumpkern/Makefile.rumpkern@1.173 type: modified - new: '1.574' old: '1.573' path: src/sys/sys/param.h pathrev: src/sys/sys/param.h@1.574 type: modified - new: '1.1' old: '0' path: src/sys/sys/threadpool.h pathrev: src/sys/sys/threadpool.h@1.1 type: added - new: '1.55' old: '1.54' path: src/tests/kernel/Makefile pathrev: src/tests/kernel/Makefile@1.55 type: modified - new: '1.1' old: '0' path: src/tests/kernel/t_threadpool.sh pathrev: src/tests/kernel/t_threadpool.sh@1.1 type: added - new: '1.1' old: '0' path: src/tests/kernel/threadpool_tester/Makefile pathrev: src/tests/kernel/threadpool_tester/Makefile@1.1 type: added - new: '1.1' old: '0' path: src/tests/kernel/threadpool_tester/threadpool_tester.c pathrev: src/tests/kernel/threadpool_tester/threadpool_tester.c@1.1 type: added id: 20181224T165854Z.944115a2ef9c1b5c62fa333b75a5abfdc38832e0 log: | 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. module: src subject: 'CVS commit: src' unixtime: '1545670734' user: thorpej