BSDCan2017 - 0722b

BSDCan 2017
The Technical BSD Conference

Yanmin Qiao
Day Talks #1 - 9 June - 2017-06-09
Room DMS 1120
Start time 10:00
Duration 01:00
ID 778
Event type Lecture
Track Hacking
Language used for presentation English

A walk-through of FreeBSD Hyper-V device drivers

How they are structured and how they work together

A walk-through of FreeBSD Hyper-V device drivers, how they are structured, how they work together, and why we make them those ways.

FreeBSD Hyper-V device drivers have been there for many years, and were reorganized recently. They are set of synthetic device drivers, which work pretty differently from the traditional PCI/PCIe devices.

This talk will introduce the internal structures of FreeBSD Hyper-V device drivers, how they are linked together, and how they are fitted into FreeBSD newbus. Then FreeBSD Hyper-V synthetic network device driver will be used as an example to walk through the device discovery, multi-queue support, and the generic types of data flows between FreeBSD VM and Hyper-V hypervisor. We will also take a bit closer look at how network packets are received and transmitted by the FreeBSD Hyper-V synthetic network device driver, and some implementation decisions will be explained. Since the Hyper-V's SR-IOV for the network devices is done in a unique fashion, the sketch about its work flow in a FreeBSD VM will be shown. And lastly, this talk will give a glance at the synthetic time counter and event timer on a FreeBSD VM, which are critical to a performant system.

Additional paper documenting more details, which probably cannot be covered by the 1 hour talk, will be provided for others to gain better understanding of the FreeBSD Hyper-V device drivers.