When kernel has to send MMIO writes to userspace, it stores them in memory until it has to pass the hand to userspace for another reason. This avoids to have too many context switches on operations that can wait.
These patches introduce an ioctl() to define MMIO allowed to be delayed. WITHOUT WITH PATCH PATCH iperf (e1000) 169 MB/s 185,5 MB/s +9,7% host_state_reload (626594) (391825) -37% [9,7% is a more realistic value than my previous benchmark] boot XP host_state_reload 764677 516059 -32% VGA text scroll host_state_reload 13280568 (6:15) 3608362 (4:42) -73% (-25%) This is the kernel part of the MMIO batching functionality. [PATCH 1/5] kvm_io_device: extend in_range() to manage len and write attribute Modify member in_range() of structure kvm_io_device to pass length and the type of the I/O (write or read). [PATCH 2/5] Add delayed MMIO support (common part) This patch adds all needed structures to batch MMIOs. Until an architecture uses it, it is not compiled. [PATCH 3/5] Add delayed MMIO support (x86 part) This patch enables MMIO batching for x86 architecture. [PATCH 4/5] Add delayed MMIO support (powerpc part) This patch enables MMIO batching for powerpc architecture. WARNING: this has not been tested. [PATCH 5/5] Add delayed MMIO support (ia64 part) This patch enables MMIO batching for ia64 architecture. WARNING: this has not been tested. Signed-off-by: Laurent Vivier <[EMAIL PROTECTED]> -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html