BSDCan2017 - 0722d
BSDCan 2017
The Technical BSD Conference
Speakers | |
---|---|
Yanmin Qiao |
Schedule | |
---|---|
Day | Talks #1 - 9 June - 2017-06-09 |
Room | DMS 1120 |
Start time | 10:00 |
Duration | 01:00 |
Info | |
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.