DragonFly commits List (threaded) for 2004-01
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/netinet6 in6_rmx.c
dillon 2004/01/07 03:07:04 PST
DragonFly src repository
Modified files:
sys/netinet6 in6_rmx.c
Log:
tvtohz() was originally designed for tsleep() and timeout() operations but
it is also used to time nanosleep() ops. The problem is that in order to
compensate for the fact that a clock interrupt might occur just after a
thread blocks or registers a timeout, this function effectively added +1
to the returned value plus added another +1 for timeouts that were not
integer multiples if the clock interrupt frequency.
Split tvtohz() into two routines: tvtohz_low() and tvtohz_high().
tvtohz_low() does not do any compensation, tvtohz_high() does.
Add the kern.sleep_hardloop sysctl, which defaults to 0 (off). If set to
1 this will cause nanosleep() to attempt to time exactly the requested
interval (which could cost more cpu) rather then rounding it off to a
multiple of hz. If set to 2 nanosleep() will only do the more rigid
timing for requests less then 1 second. Also change the normal hz-baesd
case to only compensate by +1, not +2, in order to improve accuracy.
Revision Changes Path
1.4 +2 -2 src/sys/netinet6/in6_rmx.c
http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/in6_rmx.c.diff?r1=1.3&r2=1.4&f=h
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]