tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Run timers in workqueue



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


Home | Main Index | Thread Index | Old Index