<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lug.mtu.edu/w/index.php?action=history&amp;feed=atom&amp;title=Minutes_2026-10-01</id>
	<title>Minutes 2026-10-01 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lug.mtu.edu/w/index.php?action=history&amp;feed=atom&amp;title=Minutes_2026-10-01"/>
	<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-01&amp;action=history"/>
	<updated>2026-10-06T01:21:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-01&amp;diff=8158&amp;oldid=prev</id>
		<title>Freya: Created page with &quot;=Virtual Function I/O= Presented by Simone ==Virtualization Primer== *Hypervisors let you run multiple OSes on one machine **KVM and QEMU on Linux **Xen, VMWare, HyperV on other platforms *Virtual Machines **Guest operating system **Almost native performance because CPU instructions are run directly **Other hardware is emulated *VMs don’t have direct hardware access, which is a problem **QEMU must emulate GPU, network, etc **Paravirtualization helps with some of these...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-01&amp;diff=8158&amp;oldid=prev"/>
		<updated>2026-10-01T23:02:46Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=Virtual Function I/O= Presented by Simone ==Virtualization Primer== *Hypervisors let you run multiple OSes on one machine **KVM and QEMU on Linux **Xen, VMWare, HyperV on other platforms *Virtual Machines **Guest operating system **Almost native performance because CPU instructions are run directly **Other hardware is emulated *VMs don’t have direct hardware access, which is a problem **QEMU must emulate GPU, network, etc **Paravirtualization helps with some of these...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Virtual Function I/O=&lt;br /&gt;
Presented by Simone&lt;br /&gt;
==Virtualization Primer==&lt;br /&gt;
*Hypervisors let you run multiple OSes on one machine&lt;br /&gt;
**KVM and QEMU on Linux&lt;br /&gt;
**Xen, VMWare, HyperV on other platforms&lt;br /&gt;
*Virtual Machines&lt;br /&gt;
**Guest operating system&lt;br /&gt;
**Almost native performance because CPU instructions are run directly&lt;br /&gt;
**Other hardware is emulated&lt;br /&gt;
*VMs don’t have direct hardware access, which is a problem&lt;br /&gt;
**QEMU must emulate GPU, network, etc&lt;br /&gt;
**Paravirtualization helps with some of these&lt;br /&gt;
***Instead of emulating, a guest driver passes some things through&lt;br /&gt;
***Usually needs guest OS support&lt;br /&gt;
***Still plenty of limites&lt;br /&gt;
**Dual booting is annoying&lt;br /&gt;
==What is VFIO?==&lt;br /&gt;
*Gives a VM control over PCIE devices&lt;br /&gt;
*Uses IOMMU (most devices in the past 10 years have this)&lt;br /&gt;
*Remaps memory addresses and isolates devices&lt;br /&gt;
**Prevents device as PCIe directly to guest&lt;br /&gt;
**Low overhead&lt;br /&gt;
**Little host interference ### Capabilities Generally allows faster access and removes overhead and quirks from the host OS and passthrough&lt;br /&gt;
*GPU Access&lt;br /&gt;
*Storage/NVMe&lt;br /&gt;
*Network devices (good for high throughput, bypasses host network stack)&lt;br /&gt;
*USB and audio&lt;br /&gt;
===Full Passthrough===&lt;br /&gt;
*Assigns an entire PCIe device to a guest&lt;br /&gt;
**Binds the device to vfio-pci on host side&lt;br /&gt;
**Unbinds from normal host driver&lt;br /&gt;
*Host can’t use device anymore&lt;br /&gt;
*Works for almost every device&lt;br /&gt;
===SR-IOV===&lt;br /&gt;
*Single-root I/O Virtualization&lt;br /&gt;
*Shares PCIe deives between multiple guests&lt;br /&gt;
*Host retains device access&lt;br /&gt;
*More efficient sharing of resources&lt;br /&gt;
*Used heavily in cloud computing&lt;br /&gt;
*Virtual Function:&lt;br /&gt;
**Single PCIe devices splits into multiple VFs&lt;br /&gt;
**Can be assigned to guest&lt;br /&gt;
*Only some hardware is capable&lt;br /&gt;
**Mostly enterprise grade devices&lt;br /&gt;
==Demo==&lt;br /&gt;
*Can write to a device file to add VFs&lt;br /&gt;
*Adds more PCI devices in &amp;lt;code&amp;gt;lspci&amp;lt;/code&amp;gt; output&lt;br /&gt;
*Intel GPU drivers are NOT READY for this, was not able to load a driver despite seeing the VF&lt;br /&gt;
==Use Cases==&lt;br /&gt;
*Can run Windows games in a VM with good performance&lt;br /&gt;
*Virtual workstations&lt;br /&gt;
*Development/security&lt;br /&gt;
**Driver testing&lt;br /&gt;
**Malware analysis&lt;br /&gt;
*Provisioning GPU resources to customer VMs on a server (cloud computing)&lt;/div&gt;</summary>
		<author><name>Freya</name></author>
	</entry>
</feed>