Improve vkernel support.
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 20 Mar 2008 02:14:56 +0000 (02:14 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 20 Mar 2008 02:14:56 +0000 (02:14 +0000)
commit9c2ed617fbcb67b6559d4e8d8bc62d7700b47a07
treeef59370603d6382ed3e4774af9dd49af1d4a4e6b
parentd36f75f869c0c560405809095f72bac407ff9f0e
Improve vkernel support.

* 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.
sys/dev/virtual/disk/vdisk.c
sys/platform/vkernel/conf/files
sys/platform/vkernel/i386/exception.c
sys/platform/vkernel/include/cothread.h [new file with mode: 0644]
sys/platform/vkernel/include/md_var.h
sys/platform/vkernel/platform/cothread.c [new file with mode: 0644]
sys/platform/vkernel/platform/machintr.c