diff --git a/CHANGELOG.md b/CHANGELOG.md index f99687559..9f6840b7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -114,6 +114,12 @@ the Virtio SCSI driver. See the [Virtio Block](http://www.spdk.io/doc/bdev.html#bdev_config_virtio_blk) reference for more information. +### Virtio with 2MB hugepages + +Previous 1GB hugepage limitation has now been lifted. A new '-g' command-line option +enables SPDK Virtio to work with 2MB hugepages. +See [2MB hugepages](http://www.spdk.io/doc/virtio.html#virtio_2mb) for details. + ## v18.01: Blobstore Thin Provisioning ### Build System diff --git a/doc/virtio.md b/doc/virtio.md index 7b5deadd5..283677354 100644 --- a/doc/virtio.md +++ b/doc/virtio.md @@ -18,3 +18,16 @@ the overall I/O performance. This Virtio library is currently used to implement two bdev modules: @ref bdev_config_virtio_scsi and @ref bdev_config_virtio_blk. These modules will export generic SPDK block devices usable by any SPDK application. + +# 2MB hugepages {#virtio_2mb} + +vhost-user specification puts a limitation on the number of "memory regions" used (8). +Each region corresponds to one file descriptor, and DPDK - as SPDK's memory allocator - +uses one file per hugepage by default. So *by default* this makes SPDK Virtio practical +with only 1GB hugepages. To run an SPDK app using Virtio initiator with 2MB hugepages +it is required to pass '-g' command-line option . This forces DPDK to create a single +non-physically-contiguous hugetlbfs file for all its memory. + +This functionality requires latest DPDK changes that are officially landing in DPDK +18.05, but have been also backported to spdk-18.02 branch of our internal DPDK fork +which is currently used as a default git submodule for SPDK.