NVMe controller emulator for bhyve

A Summer of Code 2017 Project

Project description

This project is implementation of NVMe controller emulator for bhyve. NVMe has some advantage compared with another host interface, for example, scalable, small command, large command buffer and so on.

Goal of this project is guest FreeBSD, Linux and Windows can access data via this controller emulator and evaluate performance and compare with AHCI controller and virtio-block device.

Statues

- 2018/01/20

FreeBSD as guest can make fs by newfs and boot from a disk that is attached using the emulator.

Plan

May 30 (coding officially begins!)

1. Implement dummy PCIe device

2. Implement initializing step of NVMe controller

FreeBSD initialize NVMe driver in boot by nvme_ctrlr_construct() function in nvme_ctrlr.c.

June 30 16:00 UTC (First evaluation deadline)

3. Implement NVMe Commands

July 28 16:00 UTC (Phase 2 Evaluation deadline)

September 5 16:00 UTC (Final evaluation deadline)

Code on project

usr.sbin/bhyve/pci_nvme.c

SummerOfCode2017/NVMeControllerEmulatorForBhyve (last edited 2018-01-20T12:14:49+0000 by ShunsukeMie)