cvs commit: src/sys/platform/vkernel/conf files src/sys/platform/vkernel/i386 exception.c src/sys/platform/vkernel/include cothread.h md_var.h src/sys/platform/vkernel/platform cothread.c machintr.c src/sys/dev/virtual/disk vdisk.c

Aggelos Economopoulos aoiko at
Thu Mar 20 04:53:40 PDT 2008

Matthew Dillon wrote:
  * Add a new cothread API for vkernel drivers.  This creates real threads
    to act as DMA engines for I/O.  These threads operate OUTSIDE the
    vkernel's cpu abstraction and thus work with UP builds or SMP builds with
    -n 1.
  * Asynchronize the virtual disk (vkd).   VKD now queues I/O to a cothread
    which runs it and then generates a signal to the vkernel's cpu 0 to run
    the virtual device's 'interrupt' function.
  * The new cothread code works better then the kqueue code because it allows
    I/O's to be ganged together for bulk operation without causing a signal
    for each one.  The kqueue code is still used by VKE but should
    be considered obsolete.
Do we have some simple before/after numbers for typical operations like 
extracting pkgsrc-2007Q4.tar.gz and/or running some io benchmark (some 
phases of kernel compilation may be affected as well)? I don't have easy 
access to a dragonfly box atm.


More information about the Commits mailing list