看板 DFBSD_kernel 關於我們 聯絡資訊
This patch makes the kernel callout_*() interface per-cpu and MP safe. Individual callouts may also be registered as MP safe or not via a second argument to callout_reset() (using the same API a FreeBSD-5). I would appreciate more widespread testing before I commit it. I did some simple testing on a UP and SMP box but the API is used all over the system so prudence is required :-) fetch http://leaf.dragonflybsd.org/~dillon/callout01.patch This will allow Jeff to start to actually turn off the Big Giant Lock in portions of the networking code. -- There is plenty of further work on the timeout_*() interface that can be done. I would dearly love to replace the old timeout() and untimeout() functions with the newer callout_init()/callout_reset() API, because that will free up 800KB+ of wired physical memory and allow us to remove a ton of cruft from kern_timeout.c. The old routines are used all over the kernel but any developer who wants to have a go at it please do! Submit patches one device at a time, though, and test that the kernel compiles and boots before you submit (The patches are also going to require very careful review once submitted). Any takers? -Matt Matthew Dillon <dillon@backplane.com>