DragonFly BSD
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

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 7 Jan 2004 03:07:04 -0800 (PST)

dillon      2004/01/07 03:07:04 PST

DragonFly src repository

  Modified files:
    sys/netinet6         in6_rmx.c 
  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


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