DragonFly BSD
DragonFly commits List (threaded) for 2004-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/sys/i386/i386 src/sys/kern src/sys/sys src/sys/dev/crypto/rndtest


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 16 Sep 2004 17:18:16 -0700 (PDT)

dillon      2004/09/16 17:18:16 PDT

DragonFly src repository

  Modified files:
    sys/i386/i386        machdep.c 
    sys/kern             kern_clock.c kern_timeout.c 
    sys/sys              callout.h 
    sys/dev/crypto/rndtest rndtest.c 
  Log:
  Move all the softclock/callout initialization out of MD and into MI.  Get rid
  of the extremely low-level virtual address space allocation for the old
  timeout() API's data structures and simply malloc() them in the new MI code
  (they will soon be removed entirely when the old API is removed).  Replace
  the softclock swi with a non-preempting high priority helper thread (one
  per cpu).  The lack of preemption allows us to retain compatibility with
  splsoftclock() use elsewhere in the kernel until those uses can be cleaned up,
  then we *might* make softclock threads preempt-capable.
  
  Rewrite the callout_*() implementation to make all data structures per-cpu.
  Add an MP flag (similar to what FreeBSD did), but create a separate API
  function, callout_init_mp() instead of adding an additional badly defined
  argument to callout_init().   callout_reset() and callout_stop() will now
  complain if the supplied structure is uninitialized (zero'd, e.g.
  callout_init() was not called on it).
  
  It is our intention to obsolete the old timeout()/untimeout() APIs and work
  is ongoing in that regard, and Joerg will soon import the new OpenBSD
  timeout_{set,add,del}() API.  The callout*() API will be retained.
  
  In DragonFly these APIs will guarentee that the callback will occur on the
  same cpu that the timeout was added on, a feature that the TCP protocol stacks
  will soon be able to take advantage of.
  
  Idea and Brainstorming by: Jeffrey Hsu, Joerg Sonnenberger, and Matthew Dillon
  
  Revision  Changes    Path
  1.66      +0 -28     src/sys/i386/i386/machdep.c
  1.24      +8 -10     src/sys/kern/kern_clock.c
  1.12      +368 -112  src/sys/kern/kern_timeout.c
  1.4       +26 -13    src/sys/sys/callout.h
  1.7       +1 -5      src/sys/dev/crypto/rndtest/rndtest.c


http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/machdep.c.diff?r1=1.65&r2=1.66&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_clock.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_timeout.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/callout.h.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/crypto/rndtest/rndtest.c.diff?r1=1.6&r2=1.7&f=u



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