K 10 svn:author V 3 mav K 8 svn:date V 27 2012-12-17T20:36:56.819618Z K 7 svn:log V 1146 Experiments with dummynet exposed number of problems in code supporting legacy tick-based callouts. "callou_reset(... , 1, ...)", used by dummynet, effectively means "call me on the next hardclock tick after now". But our new world order had no concept of the "next tick", and concept of "now" was also complicated by using imprecise getbinuptime(). Different attempts to handle that gave either low resolution, or lack of event aggregation. In all cases resolution was limited by 1ms of getbinuptime(), that made at least useless setting hz above 1000. To fix that, new callout code was made to get the time of the hardclock() call directly from the kern_eventtimer.c, where it is already present with full precision. That fixed all above problems at the same time: all legacy callouts are now sychronized and so will aggregate with hardclock events, and because of having precise time values hz above 1000 are again usable. In addition to that, create and use new global variable tc_tick_bt, representing duration of the timecounter tick, that is bigger then duration of hz tick (tick_bt), when hz is set above 1000; Reviewed by: davide END