]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r280037:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 27 Mar 2015 08:53:59 +0000 (08:53 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 27 Mar 2015 08:53:59 +0000 (08:53 +0000)
commit0d912f6df88cdd665e80c7141216b47d3d86440d
treed5e582739ba24f9865f9b0429eefe9fb0674851e
parent597582d605f63df44fd34a92b59c7db00fa6b3fb
MFC r280037:
Rewrite virtio block device driver to work asynchronously and use the block
I/O interface.

Asynchronous operation, based on r280026 change, allows to not block virtual
CPU during I/O processing, that on slow/busy storage can take seconds.
Use of recently improved block I/O interface allows to process multiple
requests same time, that improves random I/O performance on wide storages.

Benchmarks of virtual disk, backed by ZVOL on RAID10 pool of 4 HDDs, show
~3.5 times random read performance improvements, while no degradation on
linear I/O.  Guest CPU usage during test dropped from 100% to almost zero.

git-svn-id: svn://svn.freebsd.org/base/stable/10@280744 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
usr.sbin/bhyve/block_if.c
usr.sbin/bhyve/pci_virtio_block.c