Module Name: src Committed By: jym Date: Thu Nov 24 01:47:18 UTC 2011
Modified Files: src/sys/arch/xen/xen: xbdback_xenbus.c Log Message: Deep rework of the xbdback(4) driver; it now uses a thread per instance instead of continuations directly from shm callbacks or interrupt handlers. The whole CPS design remains but is adapted to cope with a thread model. This patch allows scheduling away I/O requests of domains that behave abnormally, or even destroy them if there is a need to (without thrashing dom0 with lots of error messages at IPL_BIO). I took this opportunity to make the driver MPSAFE, so multiple instances can run concurrently. Moved from home-grown pool(9) queues to pool_cache(9), and rework the callback mechanism so that it delegates I/O processing to thread instead of handling it itself through the continuation trampoline. This one fixes the potential DoS many have seen in a dom0 when trying to suspend a NetBSD domU with a corrupted I/O ring. Benchmarks (build.sh release runs and bonnie++) do not show any performance regression, the "new" driver is on-par with the "old" one. ok bouyer@. To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/sys/arch/xen/xen/xbdback_xenbus.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.