SlideShare a Scribd company logo
Implementing SR-IOV Failover for
Windows Guests During Migration
Annie Li - Principal Software Engineer, Oracle
Yan Vugenfirer - CEO, Daynix
http://github.com/virtio-win/
Agenda
• Virtio-win drivers
• Windows guest terminology
• The problem
• Different solutions
• Failover solution with virtio-net on Windows
guest
• Upstream: https://github.com/virtio-win/kvm-guest-
drivers-windows/
• Drivers for the major virtio devices:
• virtio-net
• virtio-blk, virtio-scsi
• virtio-balloon, virtio-serial, virtio-vsock, virtio-input,
virtio-rng
• Panic, fw-cfg
• INF files (pci-serial, sm-bus on Q35)
Drivers for Windows
• WDF drivers for the “simple” devices
• Miniport architecture for network and
storage
• NDIS
• Storport
• Scsiport
VirtIO Drivers for Windows
• Supported OS
• Windows XP, Vista, 7, 8, 8.1, 10 (up to
recent builds)
• Widows Server 2003, 2008, 2008R2,
2012, 2012R2, 2016, 2019
VirtIO Drivers for Windows
• Send PRs - https://github.com/virtio-
win/kvm-guest-drivers-windows/
pulls
• Code changes should pass WHQL
• We are running WHQL CI on
upstream (HCK-CI)
How to Contribute
Contributors
• And others
NDIS (Network Driver Interface Specification) Architecture
NotifyObject
Network	
configuration	
subsystem
HW	device HW	device
Protocol	drivers	
Protocol	
Driver
Miniport	Drivers
Network	Device
Miniport	driver
Miniport	edge
Protocol	edge
Intermediate	
drivers
	Protocol	driver
Intermediate	driver
	Protocol	driver
Miniport	driver
NDIS
User	space
• NDIS miniport driver
• Basic driver package:
• INF file – installation description
• SYS file – driver binary
• PDB file – symbols for debugging
• CAT file - package digital signature
Virtio-net (NetKVM) Driver for Windows
The Problem – Live Migration and SR-IOV
Overview of SR-IOV Migration Solutions
• Previous efforts and vendor specific HW
solutions
• Hyper-V and Windows
• Linux and VirtIO
Previous Efforts
• KVM Forum 2015 Live Migration with SR-IOV
Pass-through - Weidong Han, Huawei
• KVM Forum 2018 - Live Migration Support for
GPU with SR-IOV - Zheng Xiao, Alibaba
Cloud; Jerry Jiang & Ken Xue, AMD
• KVM Forum 2020 (parallel session) - Device
Keepalive State for Local Live Migration and
VMM Fast Restart - Jason Zeng, Intel
Overview of Software Solutions
• Windows NIC Teaming
• Windows MUX Intermediate driver
• Hyper-V Solution
Windows NIC Teaming
• Similar to bond in Linux
• Provides failover capability
• Configured through GUI or Powershell
Cmdlets in user space
Windows MUX Intermediate Driver
• Kernel space solution with various models
• One-to-two model for SR-IOV live
migration
Windows MUX Intermediate Driver
TCPIP
VF	miniport	
driver
					
NotifyObject
Open	Adapter1 Open	Adapter2
Network	
configuration	
subsystem
VirtIO	network	
device
Virtual	Function	
network	device
Protocol	driver	
Protocol	
Driver
Miniport	Driver
Network	Device
Virtual	Adapter
NetKVM
Miniport	edge
Protocol	edge
One-to-Two	MUX	
Intermediate	
Driver
Internal	Binding
Other	Protocols
ndisndis
ndis
ndis
ndis
• Netkvm	is	Open	Source	driver	code	for	VirtIO	network	 • VF	miniport	driver	is	provided	by	vendor
NDIS(Kernel	Space)
User	space
Network Binding of NIC Teaming or MUX
Hyper-V VM Network
• Network virtual service client(NetVSC )
• Synthetic data path
• SR-IOV data path
• Two Installation files(INF)
• Share same driver binary
Hyper-V SR-IOV VF Failover
TCPIP Other	
Protocols
VF	Miniport	
Driver
					Hyper-V	NetVSC	Driver
Hyper-V	NetVSC	
Miniport	Driver
Hyper-V	NetVSC	
Protocol	Driver
Miniport	Driver 1:1	
binding
Hyper-V	Virtual	
Network	Device
Virtual	Function	
Device
Virtual	Network	
Device
Protocol	Driver	
Protocol	
Driver
ndisvf
ndisvf
• No	Bond/Teaming	
• No	NotifyObject	
• No	new	Virtual	Adapter
NDIS(Kernel	space)
Network Binding in Hyper-V
Comparison Summary
• MUX Driver model:
• Complicated, New virtual adapter,
Restore offload, NotifyObject.
• Hyper-V model:
• Simplified, Appropriate for Hyper-V
• 2-netdev model in KVM
Windows Network of VirtIO and VF
TCPIP Other	Protocols
VF	Miniport	
Driver
NetKVM	
Miniport	Driver
VirtIO	Network	
Device
Virtual	Function	
Device
Protocol	Driver
Miniport	Driver
Virtual	Network	
Device
ndis
ndis
NDIS(Kernel	sapce)
TCPIP Other	Protocols
VF	Miniport	
Driver
					VirtIO	NetKVM	Driver
NotifyObject
Network	
configuration	
subsystem
Virtual	Function	
Device
Protocol	Driver
Miniport	Driver
Virtual	Network	
Device
1:1	
binding ndis
ndis
ndis
ndis
VirtIO SR-IOV VF Failover
VirtIO	Network	
Device
VirtIO	Protocol	
Driver
NetKVM	Miniport	
Driver
User	Space
NDIS	in	Kernel	Space
• Netkvm	is	Open	Source	driver	code	for	VirtIO	network	 • VF	miniport	driver	is	provided	by	vendor
Protocol Driver in 2-netdev Model
• Behaves like a bridge
• VF adapter is coupled to VirtIO adapter
with the same MAC address
• Handling TX/RX network data
• Object identifiers(OIDs) are wrapped and
forwarded, offloads are propagated
Network Binding of VirtIO SR-IOV
Known Issues
• DHCP issue
• Only happens in specific scenario
• Statistics is missing
• NetKVM driver needs to keep the statistics of packets sent to
or received from VF driver
• Old Windows system
• Windows Server 2003 and Windows XP
• Need to add VF PNP to Notification Object code or to the
registry
• Possible race during boot?
VirtIO and SR-IOV Failover
• VirtIO specification specifics
• Feature bit called
VIRTIO_NET_F_STANDBY. It is
appropriate for 3-netdev model in Linux,
but not for Windows 2-netdev model.
Installation
• Before
• INF for Miniport
• After
• INF for Miniport
• INF for Protocol
driver definition
and Notify Object
• Not part of the guest tools installer: https://github.com/virtio-win/virtio-win-guest-tools-installer
WHQL Certification
• Before
• Certification of
miniport
• Automatic review
• After
• Two steps
certification
• Automatic review for
miniport
• Manual review of
protocol driver and
the final package
Performance
From	VM	to	Remote	Host(NetPerf,	32	vcpus,	32	TCP	Streams,	MTU=9000)
0
25
50
75
100
Default	Default 16k	32k 16k	128k 32k	64k 32k		256k 64k	128k 128k	128k 256k	256k
VF 2-netdev NetKVM
• x	axis:	“TX/RX	Buffer	size”	and	“TX/RX	Socket	Buffer	size” • y	axis:	Network	throughput	from	0	to	100G
Performance
From	Remote	Host	to	VM(NetPerf,	32	vcpus,	32	TCP	Streams,	MTU=9000)
0
25
50
75
100
Default	Default 16k	32k 16k	128k 32k	64k 32k		256k 64k	128k 128k	128k 256k	256k
VF 2-netdev NetKVM
• x	axis:	“TX/RX	Buffer	size”	and	“TX/RX	Socket	Buffer	size” • y	axis:	Network	throughput	from	0	to	100G
Performance
From	VM	to	VM	on	Remote	Host	(NetPerf,	32	vcpus,	32	TCP	Streams,	MTU=9000)
0
25
50
75
100
Default	Default 16k	32k 16k	128k 32k	64k 32k		256k 64k	128k 128k	128k 256k	256k
VF 2-netdev NetKVM
• x	axis:	“TX/RX	Buffer	size”	and	“TX/RX	Socket	Buffer	size” • y	axis:	Network	throughput	from	0	to	100G
annie.li@oracle.com yan@daynix.com
Links – source code
• virtio-win drivers source code:
• https://github.com/virtio-win/kvm-guest-drivers-
windows
• MiniPort and Protocol driver:
• https://github.com/virtio-win/kvm-guest-drivers-
windows/tree/master/NetKVM
• Notification object:
• https://github.com/virtio-win/kvm-guest-drivers-
windows/tree/master/NetKVM/NotifyObject
Links – download binary drivers
• https://docs.fedoraproject.org/en-US/quick-docs/
creating-windows-virtual-machines-using-virtio-
drivers/index.html
Links – related presentations
• KVM Forum 2015 Live Migration with SR-IOV Pass-through - Weidong Han,
Huawei
• https://www.youtube.com/watch?v=vnwEnzVp9Zo
• https://www.linux-kvm.org/images/9/9a/03x07-Juniper-Weidong_Han-
LiveMigrationWithSR-IOVPass-through.pdf
• KVM Forum 2018 - Live Migration Support for GPU with SR-IOV - Zheng Xiao,
Alibaba Cloud; Jerry Jiang & Ken Xue, AMD
• https://events19.linuxfoundation.org/wp-content/uploads/2017/12/Live-
Migration-Support-for-GPU-with-SRIOV-Challenges-and-Solution-Zheng-Xiao-
Alibaba-Cloud-Jerry-Jiang-Ken-Xue-AMD.pdf
• KVM Forum 2020 (parallel session) - Device Keepalive State for Local Live
Migration and VMM Fast Restart - Jason Zeng, Intel
• https://sched.co/eE3W
Implementing SR-IOv failover for Windows guests during live migration

More Related Content

PDF
QEMU Development and Testing Automation Using MS HCK - Anton Nayshtut and Yan...
PDF
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...
PDF
Windows guest debugging presentation from KVM Forum 2012
PDF
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers (KVM Forum 2021)
PDF
Building “old” Windows drivers (XP, Vista, 2003 and 2008) with Visual Studio ...
PPTX
Advanced NDISTest options
PDF
Microsoft Hardware Certification Kit (HCK) setup
PDF
Rebuild presentation - IoT Israel MeetUp
QEMU Development and Testing Automation Using MS HCK - Anton Nayshtut and Yan...
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...
Windows guest debugging presentation from KVM Forum 2012
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers (KVM Forum 2021)
Building “old” Windows drivers (XP, Vista, 2003 and 2008) with Visual Studio ...
Advanced NDISTest options
Microsoft Hardware Certification Kit (HCK) setup
Rebuild presentation - IoT Israel MeetUp

What's hot (20)

PDF
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
PDF
LFNW2014 Advanced Security Features of Xen Project Hypervisor
PDF
XPDS16: Hypervisor-based Security: Vicarious Learning via Introspektioneerin...
PDF
XPDS16: Xenbedded: Xen-based client virtualization for phones and tablets - ...
PDF
XPDS16: A Paravirtualized Interface for Socket Syscalls - Dimitri Stiliadis, ...
PDF
XPDS16: libvirt and Tools: What's New and What's Next - James Fehlig, SUSE
PDF
Virtunoid: Breaking out of KVM
PDF
XPDS16: CPUID handling for guests - Andrew Cooper, Citrix
PDF
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, Huawei
PDF
XPDS16: AMD's virtualization memory encryption technology - Brijesh Singh, A...
PDF
Evolution of ota_update_in_the_io_t_world
PDF
XPDS16: Xen Development Update
PDF
Kernel Recipes 2015: Kernel packet capture technologies
PPTX
Zumasys Citrix Top 10 Tips and Tricks
PDF
kdump: usage and_internals
PDF
Sw update elce2017
PDF
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGIC
PDF
Rootlinux17: An introduction to Xen Project Virtualisation
PDF
XPDS14 - Zero-Footprint Guest Memory Introspection from Xen - Mihai Dontu, Bi...
PDF
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
LFNW2014 Advanced Security Features of Xen Project Hypervisor
XPDS16: Hypervisor-based Security: Vicarious Learning via Introspektioneerin...
XPDS16: Xenbedded: Xen-based client virtualization for phones and tablets - ...
XPDS16: A Paravirtualized Interface for Socket Syscalls - Dimitri Stiliadis, ...
XPDS16: libvirt and Tools: What's New and What's Next - James Fehlig, SUSE
Virtunoid: Breaking out of KVM
XPDS16: CPUID handling for guests - Andrew Cooper, Citrix
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, Huawei
XPDS16: AMD's virtualization memory encryption technology - Brijesh Singh, A...
Evolution of ota_update_in_the_io_t_world
XPDS16: Xen Development Update
Kernel Recipes 2015: Kernel packet capture technologies
Zumasys Citrix Top 10 Tips and Tricks
kdump: usage and_internals
Sw update elce2017
XPDS16: Hypervisor Enforced Data Loss Prevention - Neil Sikka, A1LOGIC
Rootlinux17: An introduction to Xen Project Virtualisation
XPDS14 - Zero-Footprint Guest Memory Introspection from Xen - Mihai Dontu, Bi...
XPDS16: Xen Live Patching - Updating Xen Without Rebooting - Konrad Wilk, Ora...
Ad

Similar to Implementing SR-IOv failover for Windows guests during live migration (20)

PDF
Devconf.cz 2016 Linux as a guest on Hyper-V
PPTX
Hyper-V Networking
ODP
SR-IOV Introduce
PDF
virtio
PDF
XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
PPT
Linux virtualization
PPT
Unit II.ppt
PDF
A510840101 24982 23_2020_lecture_2
PDF
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
PPTX
5. IO virtualization
PPTX
17-virtualization.pptx
PPT
An Introduction To Server Virtualisation
PPTX
Virtualization of computing and servers
PPTX
Server virtualization
PDF
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
PDF
fsdgsfhdjhgfjfdhdfhsgrtrhfdhdfhdjdfhjdjdsjr
PDF
GPU Virtualization in SUSE
PDF
Server And Hardware Virtualization_Aakash1.1
PDF
Xen revisited
PDF
D1 t2 jonathan brossard - breaking virtualization by switching to virtual 8...
Devconf.cz 2016 Linux as a guest on Hyper-V
Hyper-V Networking
SR-IOV Introduce
virtio
XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
Linux virtualization
Unit II.ppt
A510840101 24982 23_2020_lecture_2
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
5. IO virtualization
17-virtualization.pptx
An Introduction To Server Virtualisation
Virtualization of computing and servers
Server virtualization
High Performance Linux Virtual Machine on Microsoft Azure: SR-IOV Networking ...
fsdgsfhdjhgfjfdhdfhsgrtrhfdhdfhdjdfhjdjdsjr
GPU Virtualization in SUSE
Server And Hardware Virtualization_Aakash1.1
Xen revisited
D1 t2 jonathan brossard - breaking virtualization by switching to virtual 8...
Ad

More from Yan Vugenfirer (7)

PDF
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
PDF
Qemu device prototyping
PDF
Windows network teaming
PDF
Rebuild presentation during Docker's Birthday party
PDF
Contributing to open source using Git
PDF
Introduction to Git
PDF
UsbDk at a Glance 
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
Qemu device prototyping
Windows network teaming
Rebuild presentation during Docker's Birthday party
Contributing to open source using Git
Introduction to Git
UsbDk at a Glance 

Recently uploaded (20)

PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Review of recent advances in non-invasive hemoglobin estimation
DOCX
The AUB Centre for AI in Media Proposal.docx
PPT
Teaching material agriculture food technology
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Approach and Philosophy of On baking technology
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
Big Data Technologies - Introduction.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
Review of recent advances in non-invasive hemoglobin estimation
The AUB Centre for AI in Media Proposal.docx
Teaching material agriculture food technology
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Advanced methodologies resolving dimensionality complications for autism neur...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Understanding_Digital_Forensics_Presentation.pptx
Electronic commerce courselecture one. Pdf
Machine learning based COVID-19 study performance prediction
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Approach and Philosophy of On baking technology

Implementing SR-IOv failover for Windows guests during live migration

  • 1. Implementing SR-IOV Failover for Windows Guests During Migration Annie Li - Principal Software Engineer, Oracle Yan Vugenfirer - CEO, Daynix http://github.com/virtio-win/
  • 2. Agenda • Virtio-win drivers • Windows guest terminology • The problem • Different solutions • Failover solution with virtio-net on Windows guest
  • 3. • Upstream: https://github.com/virtio-win/kvm-guest- drivers-windows/ • Drivers for the major virtio devices: • virtio-net • virtio-blk, virtio-scsi • virtio-balloon, virtio-serial, virtio-vsock, virtio-input, virtio-rng • Panic, fw-cfg • INF files (pci-serial, sm-bus on Q35) Drivers for Windows
  • 4. • WDF drivers for the “simple” devices • Miniport architecture for network and storage • NDIS • Storport • Scsiport VirtIO Drivers for Windows
  • 5. • Supported OS • Windows XP, Vista, 7, 8, 8.1, 10 (up to recent builds) • Widows Server 2003, 2008, 2008R2, 2012, 2012R2, 2016, 2019 VirtIO Drivers for Windows
  • 6. • Send PRs - https://github.com/virtio- win/kvm-guest-drivers-windows/ pulls • Code changes should pass WHQL • We are running WHQL CI on upstream (HCK-CI) How to Contribute
  • 8. NDIS (Network Driver Interface Specification) Architecture NotifyObject Network configuration subsystem HW device HW device Protocol drivers Protocol Driver Miniport Drivers Network Device Miniport driver Miniport edge Protocol edge Intermediate drivers Protocol driver Intermediate driver Protocol driver Miniport driver NDIS User space
  • 9. • NDIS miniport driver • Basic driver package: • INF file – installation description • SYS file – driver binary • PDB file – symbols for debugging • CAT file - package digital signature Virtio-net (NetKVM) Driver for Windows
  • 10. The Problem – Live Migration and SR-IOV
  • 11. Overview of SR-IOV Migration Solutions • Previous efforts and vendor specific HW solutions • Hyper-V and Windows • Linux and VirtIO
  • 12. Previous Efforts • KVM Forum 2015 Live Migration with SR-IOV Pass-through - Weidong Han, Huawei • KVM Forum 2018 - Live Migration Support for GPU with SR-IOV - Zheng Xiao, Alibaba Cloud; Jerry Jiang & Ken Xue, AMD • KVM Forum 2020 (parallel session) - Device Keepalive State for Local Live Migration and VMM Fast Restart - Jason Zeng, Intel
  • 13. Overview of Software Solutions • Windows NIC Teaming • Windows MUX Intermediate driver • Hyper-V Solution
  • 14. Windows NIC Teaming • Similar to bond in Linux • Provides failover capability • Configured through GUI or Powershell Cmdlets in user space
  • 15. Windows MUX Intermediate Driver • Kernel space solution with various models • One-to-two model for SR-IOV live migration
  • 16. Windows MUX Intermediate Driver TCPIP VF miniport driver NotifyObject Open Adapter1 Open Adapter2 Network configuration subsystem VirtIO network device Virtual Function network device Protocol driver Protocol Driver Miniport Driver Network Device Virtual Adapter NetKVM Miniport edge Protocol edge One-to-Two MUX Intermediate Driver Internal Binding Other Protocols ndisndis ndis ndis ndis • Netkvm is Open Source driver code for VirtIO network • VF miniport driver is provided by vendor NDIS(Kernel Space) User space
  • 17. Network Binding of NIC Teaming or MUX
  • 18. Hyper-V VM Network • Network virtual service client(NetVSC ) • Synthetic data path • SR-IOV data path • Two Installation files(INF) • Share same driver binary
  • 19. Hyper-V SR-IOV VF Failover TCPIP Other Protocols VF Miniport Driver Hyper-V NetVSC Driver Hyper-V NetVSC Miniport Driver Hyper-V NetVSC Protocol Driver Miniport Driver 1:1 binding Hyper-V Virtual Network Device Virtual Function Device Virtual Network Device Protocol Driver Protocol Driver ndisvf ndisvf • No Bond/Teaming • No NotifyObject • No new Virtual Adapter NDIS(Kernel space)
  • 21. Comparison Summary • MUX Driver model: • Complicated, New virtual adapter, Restore offload, NotifyObject. • Hyper-V model: • Simplified, Appropriate for Hyper-V • 2-netdev model in KVM
  • 22. Windows Network of VirtIO and VF TCPIP Other Protocols VF Miniport Driver NetKVM Miniport Driver VirtIO Network Device Virtual Function Device Protocol Driver Miniport Driver Virtual Network Device ndis ndis NDIS(Kernel sapce)
  • 23. TCPIP Other Protocols VF Miniport Driver VirtIO NetKVM Driver NotifyObject Network configuration subsystem Virtual Function Device Protocol Driver Miniport Driver Virtual Network Device 1:1 binding ndis ndis ndis ndis VirtIO SR-IOV VF Failover VirtIO Network Device VirtIO Protocol Driver NetKVM Miniport Driver User Space NDIS in Kernel Space • Netkvm is Open Source driver code for VirtIO network • VF miniport driver is provided by vendor
  • 24. Protocol Driver in 2-netdev Model • Behaves like a bridge • VF adapter is coupled to VirtIO adapter with the same MAC address • Handling TX/RX network data • Object identifiers(OIDs) are wrapped and forwarded, offloads are propagated
  • 25. Network Binding of VirtIO SR-IOV
  • 26. Known Issues • DHCP issue • Only happens in specific scenario • Statistics is missing • NetKVM driver needs to keep the statistics of packets sent to or received from VF driver • Old Windows system • Windows Server 2003 and Windows XP • Need to add VF PNP to Notification Object code or to the registry • Possible race during boot?
  • 27. VirtIO and SR-IOV Failover • VirtIO specification specifics • Feature bit called VIRTIO_NET_F_STANDBY. It is appropriate for 3-netdev model in Linux, but not for Windows 2-netdev model.
  • 28. Installation • Before • INF for Miniport • After • INF for Miniport • INF for Protocol driver definition and Notify Object • Not part of the guest tools installer: https://github.com/virtio-win/virtio-win-guest-tools-installer
  • 29. WHQL Certification • Before • Certification of miniport • Automatic review • After • Two steps certification • Automatic review for miniport • Manual review of protocol driver and the final package
  • 30. Performance From VM to Remote Host(NetPerf, 32 vcpus, 32 TCP Streams, MTU=9000) 0 25 50 75 100 Default Default 16k 32k 16k 128k 32k 64k 32k 256k 64k 128k 128k 128k 256k 256k VF 2-netdev NetKVM • x axis: “TX/RX Buffer size” and “TX/RX Socket Buffer size” • y axis: Network throughput from 0 to 100G
  • 31. Performance From Remote Host to VM(NetPerf, 32 vcpus, 32 TCP Streams, MTU=9000) 0 25 50 75 100 Default Default 16k 32k 16k 128k 32k 64k 32k 256k 64k 128k 128k 128k 256k 256k VF 2-netdev NetKVM • x axis: “TX/RX Buffer size” and “TX/RX Socket Buffer size” • y axis: Network throughput from 0 to 100G
  • 32. Performance From VM to VM on Remote Host (NetPerf, 32 vcpus, 32 TCP Streams, MTU=9000) 0 25 50 75 100 Default Default 16k 32k 16k 128k 32k 64k 32k 256k 64k 128k 128k 128k 256k 256k VF 2-netdev NetKVM • x axis: “TX/RX Buffer size” and “TX/RX Socket Buffer size” • y axis: Network throughput from 0 to 100G
  • 34. Links – source code • virtio-win drivers source code: • https://github.com/virtio-win/kvm-guest-drivers- windows • MiniPort and Protocol driver: • https://github.com/virtio-win/kvm-guest-drivers- windows/tree/master/NetKVM • Notification object: • https://github.com/virtio-win/kvm-guest-drivers- windows/tree/master/NetKVM/NotifyObject
  • 35. Links – download binary drivers • https://docs.fedoraproject.org/en-US/quick-docs/ creating-windows-virtual-machines-using-virtio- drivers/index.html
  • 36. Links – related presentations • KVM Forum 2015 Live Migration with SR-IOV Pass-through - Weidong Han, Huawei • https://www.youtube.com/watch?v=vnwEnzVp9Zo • https://www.linux-kvm.org/images/9/9a/03x07-Juniper-Weidong_Han- LiveMigrationWithSR-IOVPass-through.pdf • KVM Forum 2018 - Live Migration Support for GPU with SR-IOV - Zheng Xiao, Alibaba Cloud; Jerry Jiang & Ken Xue, AMD • https://events19.linuxfoundation.org/wp-content/uploads/2017/12/Live- Migration-Support-for-GPU-with-SRIOV-Challenges-and-Solution-Zheng-Xiao- Alibaba-Cloud-Jerry-Jiang-Ken-Xue-AMD.pdf • KVM Forum 2020 (parallel session) - Device Keepalive State for Local Live Migration and VMM Fast Restart - Jason Zeng, Intel • https://sched.co/eE3W