Hi, Timers (such as nd6_timer) typically free/destroy some data in callout (softint). If we apply psz/psref for such data, we cannot do free/destroy process in there because synchronization of psz/psref cannot be used in softint.
So I propose to run such timers in workqueue. The change is straightforward; a timer's callout just calls workqueue_enqueue and workqueue's work does the exactly same as the original callout does. Here is a patch: http://www.netbsd.org/~ozaki-r/timer-workqueue.diff The patch applies the proposal to nd6_timer, rt_timer_work, ipflow_slowtimo and ip6flow_slowtimo, which are needed by my local changes for MP-ification. Other timers would be migrated to workqueue if necessary. Any comments or suggestions? Thanks, ozaki-r
