SlideShare a Scribd company logo
1 of 17
Download to read offline
VT-d Posted Interrupts 
Feng Wu, Jun Nakajima <Speaker> 
Intel Corporation
Agenda 
• Motivation 
• Difference btw CPU-based and VT-d Posted Interrupts 
• Architecture 
• Implementation Details 
• Performance 
• Summary 
2
Motivation 
• Interrupt virtualization efficiency 
• Interrupt migration complexity 
• Big requirement of host vector for different assigned devices 
3
CPU-based Posted-Interrupt in Xen 
• External interrupt handling 
4 
VCPU0 
running on 
Physical CPU 0 
External 
interrupt 
VCPU1 
running on 
physical CPU 1 
Set bit for guest Vector in 
Posted-interrupt requests (PIR) 
of VCPU1 
VM Exit 
Guest IPI: 
- No need to kick VCPU1 
- Notification Event is handled by 
Notification Event 
VCPU1 in non-root mode 
- vIRR is updated by H/W and 
delivered by “virtual interrupt 
delivery” mechanism 
- VM-Exit is eliminated 
Xen
Key Data Structures for CPU-based Posted- 
Interrupt Processing 
• Posted-interrupt notification vector: 
− Send virtual interrupts to guests w/o VM exit 
5 
− If physical vector == Posted-interrupt 
notification vector (VMCS field) 
• PIR (Posted-interrupt requests) 
− Set bits for guest vectors in advance 
• ON (Outstanding Notification) 
− If this bit is set, there is a notification outstanding 
for one or more posted interrupts 
Virtual-APIC 
Page 
PI Desc. 
Address 
Posted-interrupt 
notification vector 
PIR 
ON 
Posted-interrupt 
Descriptor 
5 
VMCS
CPU-based Posted-Interrupt in Xen – cont’d 
6 
VCPU1 
running on 
physical CPU 1 
Set bit for guest Vector in 
Posted-interrupt requests (PIR) 
of VCPU1 
• Virtual interrupts from QEMU 
Guest IPI: 
Notification Event 
Virtual Devices 
QEMU 
Virtual interrupts 
- Virtual MSI 
- Virtual IOAPIC 
Xen 
- No need to kick VCPU1 
- Notification Event is handled by 
VCPU1 in non-root mode 
- vIRR is updated by H/W and 
delivered by “virtual interrupt 
delivery” mechanism 
- VM-Exit is eliminated
What’s new for VT-d Posted-Interrupts 
7 
VCPU1 
running on 
physical CPU 1 
Notification Event 
VT-d Engine 
with 
Posted-Interrupt support 
External Interrupts 
Direct-assigned 
Device 
- No need to kick VCPU1 
- Notification Event is handled by 
VCPU1 in non-root mode 
- vIRR is updated by H/W and 
delivered by “virtual interrupt 
delivery” mechanism 
- VM-Exit is eliminated 
No VMM overhead 
AT ALL!
VT-d Posted-Interrupts Architecture 
8 
Virtual Processor A 
VMCS 
vAPIC Page 
Posted Descriptor 
Virtual Processor B 
VMCS 
vAPIC Page 
Virtual Processor C 
CPU 0 CPU 1 
VMCS 
Posted Descriptor 
Interrupt 
Remapping Table 
IRTE for Interrupt Z 
IRTE for Interrupt Y 
IRTE for Interrupt X 
IRTE for Interrupt N 
External Interrupts 
Notification 
Event 
Notification 
Event 
Posted Descriptor 
vAPIC Page 
Notification 
Event 
CPU 0 Host-Vectors 
Other Vectors (e.g. Hyp. IPIs) 
Other Vectors (e.g. Timer) 
Notification Vector for vCPU B 
Notification Vector for vCPU A 
CPU 1 Host-Vectors 
Other Vectors (e.g. Hyp. IPIs) 
Other Vectors (e.g. Timer) 
Notification Vector for vCPU C
Xen Implementation Details: 
• Update IRET according to guest’s modification to the 
interrupt configuration (MSI address, data) 
• Interrupt migration during VCPU scheduling 
9
Xen Implementation: IRTE update 
10 
QEMU 
Xen 
VCPU 
Interrupt configuration update 
(e.g. MSI/MSIx) 
Hypercall 
XEN_DOMCTL_bind_pt_irq! 
Update the guest information in 
IRTE 
- Guest vector 
- Posted-interrupt descriptor 
address 
No changes needed 
for this part 
Changes happen here
Xen Implementation: VCPU Scheduling 
‘SN’ – Set 
‘NV’ –Notification vector 
11 
RUNSTATE_running 
‘SN’ – Clear 
‘NDST’ – New 
physical CPU of the 
VCPU 
Posted-Interrupt Descriptor 
‘SN’ – Set 
‘NV’ –Wakeup vector 
‘SN’ – Set 
‘NV’ –Wakeup vector 
RUNSTATE_runnable RUNSTATE_blocked 
‘SN’ – Set 
‘NV’ –Notification vector 
NV 
PIR [0 - 255] 
SN 
NV – Host vector for Notification Event 
SN – If set, suppress Notification Event
Summary 
• VT-d Posted-interrupts advantages 
– External interrupts from direct-assigned devices are delivered to guest 
12 
running in non-root mode directly 
– Improve Interrupt virtualization efficiency, e.g. Less VM-Exits. 
– Simplify interrupt migration 
– Consume less physical interrupts 
• Performance 
• The Specification will be published very soon 
– Can be found in Intel website
13 
Thank YOU! 
Q & A 
Or contact 
Feng Wu <feng.wu@intel.com>
14 
Back up
VT-d Posted-Interrupts Support 
• Interrupt-remap-table-entry (IRTE) enhanced as follows: 
- An existing reserved bit claimed to indicated Posted-interrupt (PST) 
- Software may choose to “remap” or “post” each interrupt independently 
• IRTEs with ‘PST’ set are interpreted per below format 
- New Fields 
15 
• Descriptor Address: the address of the posted-interrupt descriptor 
• Virtual Vector: the guest vector of the interrupt 
• URG: indicates if the interrupt is urgent 
- Other fields continue to have the same meaning
Posted-interrupt Descriptor 
16
VT-d: Steps for Interrupt Posting 
17 
Read IRTE 
Interrupt 
Remapping 
‘PST’ == 1 
N 
Y 
Read Posted-interrupt descriptor (locking the cache-line) 
Set guest virtual in PIR 
(‘ON’ == 0) 
&& 
(‘URG’ == 1 || ‘SN’ == 0) 
Y 
Y 
Set ‘ON’ and Generate notification event 
Unlock cache-line 
N 
Unlock cache-line

More Related Content

What's hot

MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
MYXPLAIN
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
IO Visor Project
 
ZFS
ZFSZFS

What's hot (20)

MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
 
Linux Linux Traffic Control
Linux Linux Traffic ControlLinux Linux Traffic Control
Linux Linux Traffic Control
 
從線上售票看作業系統設計議題
從線上售票看作業系統設計議題從線上售票看作業系統設計議題
從線上售票看作業系統設計議題
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
 
Oracle architecture ppt
Oracle architecture pptOracle architecture ppt
Oracle architecture ppt
 
Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPF
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
 
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
9 DevOps Tips for Going in Production with Galera Cluster for MySQL - Slides
 
How to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversHow to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL servers
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
 
Linux Block Cache Practice on Ceph BlueStore - Junxin Zhang
Linux Block Cache Practice on Ceph BlueStore - Junxin ZhangLinux Block Cache Practice on Ceph BlueStore - Junxin Zhang
Linux Block Cache Practice on Ceph BlueStore - Junxin Zhang
 
ZFS
ZFSZFS
ZFS
 
PCI Express* based Storage: Data Center NVM Express* Platform Topologies
PCI Express* based Storage: Data Center NVM Express* Platform TopologiesPCI Express* based Storage: Data Center NVM Express* Platform Topologies
PCI Express* based Storage: Data Center NVM Express* Platform Topologies
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 
Dataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and toolsDataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and tools
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
 
MMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and OrchestratorMMUG18 - MySQL Failover and Orchestrator
MMUG18 - MySQL Failover and Orchestrator
 
Greenplum Architecture
Greenplum ArchitectureGreenplum Architecture
Greenplum Architecture
 
Openstack Networking Internals - first part
Openstack Networking Internals - first partOpenstack Networking Internals - first part
Openstack Networking Internals - first part
 

Similar to XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted Interrupts - Feng Wu, Intel

XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, IntelXPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
The Linux Foundation
 
The Next Step of OpenStack Evolution for NFV Deployments
The Next Step ofOpenStack Evolution for NFV DeploymentsThe Next Step ofOpenStack Evolution for NFV Deployments
The Next Step of OpenStack Evolution for NFV Deployments
Dirk Kutscher
 
Atf 3 q15-5 - streamlining and automating virtual network control
Atf 3 q15-5 - streamlining and automating virtual network controlAtf 3 q15-5 - streamlining and automating virtual network control
Atf 3 q15-5 - streamlining and automating virtual network control
Mason Mei
 

Similar to XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted Interrupts - Feng Wu, Intel (20)

Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
 
See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...See what happened with real time kvm when building real time cloud pezhang@re...
See what happened with real time kvm when building real time cloud pezhang@re...
 
KVM Enhancements for OPNFV
KVM Enhancements for OPNFVKVM Enhancements for OPNFV
KVM Enhancements for OPNFV
 
A Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
A Comprehensive Implementation and Evaluation of Direct Interrupt DeliveryA Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
A Comprehensive Implementation and Evaluation of Direct Interrupt Delivery
 
XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, IntelXPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
XPDS14 - Xen as High-Performance NFV Platform - Jun Nakajima, Intel
 
Project ACRN schedule framework introduction
Project ACRN schedule framework introductionProject ACRN schedule framework introduction
Project ACRN schedule framework introduction
 
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/StableSR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
SR-IOV, KVM and Emulex OneConnect 10Gbps cards on Debian/Stable
 
The Next Step of OpenStack Evolution for NFV Deployments
The Next Step ofOpenStack Evolution for NFV DeploymentsThe Next Step ofOpenStack Evolution for NFV Deployments
The Next Step of OpenStack Evolution for NFV Deployments
 
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisorProject ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
 
EMEA Airheads- Manage Devices at Branch Office (BOC)
EMEA Airheads- Manage Devices at Branch Office (BOC)EMEA Airheads- Manage Devices at Branch Office (BOC)
EMEA Airheads- Manage Devices at Branch Office (BOC)
 
Virtualizing the Network to enable a Software Defined Infrastructure (SDI)
Virtualizing the Network to enable a Software Defined Infrastructure (SDI)Virtualizing the Network to enable a Software Defined Infrastructure (SDI)
Virtualizing the Network to enable a Software Defined Infrastructure (SDI)
 
Realtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKTRealtime scheduling for virtual machines in SKT
Realtime scheduling for virtual machines in SKT
 
Atf 3 q15-5 - streamlining and automating virtual network control
Atf 3 q15-5 - streamlining and automating virtual network controlAtf 3 q15-5 - streamlining and automating virtual network control
Atf 3 q15-5 - streamlining and automating virtual network control
 
Intel update
Intel updateIntel update
Intel update
 
SR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/StableSR-IOV+KVM on Debian/Stable
SR-IOV+KVM on Debian/Stable
 
SR-IOV Introduce
SR-IOV IntroduceSR-IOV Introduce
SR-IOV Introduce
 
Sea final adapter
Sea final adapter Sea final adapter
Sea final adapter
 
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/StableSR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
SR-IOV, KVM and Intel X520 10Gbps cards on Debian/Stable
 
Ha nsf notes
Ha nsf notesHa nsf notes
Ha nsf notes
 
Icnd210 s02l01
Icnd210 s02l01Icnd210 s02l01
Icnd210 s02l01
 

More from The Linux Foundation

More from The Linux Foundation (20)

ELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made Simple
 
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
 
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
 
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
 
XPDDS19 Keynote: Unikraft Weather Report
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather Report
 
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
 
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...
 
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
 
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
 
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
 
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
 
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
 
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
 
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
 
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
 
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
 
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
 
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEXPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

XPDS14 - Intel(r) Virtualization Technology for Directed I/O (VT-d) Posted Interrupts - Feng Wu, Intel

  • 1. VT-d Posted Interrupts Feng Wu, Jun Nakajima <Speaker> Intel Corporation
  • 2. Agenda • Motivation • Difference btw CPU-based and VT-d Posted Interrupts • Architecture • Implementation Details • Performance • Summary 2
  • 3. Motivation • Interrupt virtualization efficiency • Interrupt migration complexity • Big requirement of host vector for different assigned devices 3
  • 4. CPU-based Posted-Interrupt in Xen • External interrupt handling 4 VCPU0 running on Physical CPU 0 External interrupt VCPU1 running on physical CPU 1 Set bit for guest Vector in Posted-interrupt requests (PIR) of VCPU1 VM Exit Guest IPI: - No need to kick VCPU1 - Notification Event is handled by Notification Event VCPU1 in non-root mode - vIRR is updated by H/W and delivered by “virtual interrupt delivery” mechanism - VM-Exit is eliminated Xen
  • 5. Key Data Structures for CPU-based Posted- Interrupt Processing • Posted-interrupt notification vector: − Send virtual interrupts to guests w/o VM exit 5 − If physical vector == Posted-interrupt notification vector (VMCS field) • PIR (Posted-interrupt requests) − Set bits for guest vectors in advance • ON (Outstanding Notification) − If this bit is set, there is a notification outstanding for one or more posted interrupts Virtual-APIC Page PI Desc. Address Posted-interrupt notification vector PIR ON Posted-interrupt Descriptor 5 VMCS
  • 6. CPU-based Posted-Interrupt in Xen – cont’d 6 VCPU1 running on physical CPU 1 Set bit for guest Vector in Posted-interrupt requests (PIR) of VCPU1 • Virtual interrupts from QEMU Guest IPI: Notification Event Virtual Devices QEMU Virtual interrupts - Virtual MSI - Virtual IOAPIC Xen - No need to kick VCPU1 - Notification Event is handled by VCPU1 in non-root mode - vIRR is updated by H/W and delivered by “virtual interrupt delivery” mechanism - VM-Exit is eliminated
  • 7. What’s new for VT-d Posted-Interrupts 7 VCPU1 running on physical CPU 1 Notification Event VT-d Engine with Posted-Interrupt support External Interrupts Direct-assigned Device - No need to kick VCPU1 - Notification Event is handled by VCPU1 in non-root mode - vIRR is updated by H/W and delivered by “virtual interrupt delivery” mechanism - VM-Exit is eliminated No VMM overhead AT ALL!
  • 8. VT-d Posted-Interrupts Architecture 8 Virtual Processor A VMCS vAPIC Page Posted Descriptor Virtual Processor B VMCS vAPIC Page Virtual Processor C CPU 0 CPU 1 VMCS Posted Descriptor Interrupt Remapping Table IRTE for Interrupt Z IRTE for Interrupt Y IRTE for Interrupt X IRTE for Interrupt N External Interrupts Notification Event Notification Event Posted Descriptor vAPIC Page Notification Event CPU 0 Host-Vectors Other Vectors (e.g. Hyp. IPIs) Other Vectors (e.g. Timer) Notification Vector for vCPU B Notification Vector for vCPU A CPU 1 Host-Vectors Other Vectors (e.g. Hyp. IPIs) Other Vectors (e.g. Timer) Notification Vector for vCPU C
  • 9. Xen Implementation Details: • Update IRET according to guest’s modification to the interrupt configuration (MSI address, data) • Interrupt migration during VCPU scheduling 9
  • 10. Xen Implementation: IRTE update 10 QEMU Xen VCPU Interrupt configuration update (e.g. MSI/MSIx) Hypercall XEN_DOMCTL_bind_pt_irq! Update the guest information in IRTE - Guest vector - Posted-interrupt descriptor address No changes needed for this part Changes happen here
  • 11. Xen Implementation: VCPU Scheduling ‘SN’ – Set ‘NV’ –Notification vector 11 RUNSTATE_running ‘SN’ – Clear ‘NDST’ – New physical CPU of the VCPU Posted-Interrupt Descriptor ‘SN’ – Set ‘NV’ –Wakeup vector ‘SN’ – Set ‘NV’ –Wakeup vector RUNSTATE_runnable RUNSTATE_blocked ‘SN’ – Set ‘NV’ –Notification vector NV PIR [0 - 255] SN NV – Host vector for Notification Event SN – If set, suppress Notification Event
  • 12. Summary • VT-d Posted-interrupts advantages – External interrupts from direct-assigned devices are delivered to guest 12 running in non-root mode directly – Improve Interrupt virtualization efficiency, e.g. Less VM-Exits. – Simplify interrupt migration – Consume less physical interrupts • Performance • The Specification will be published very soon – Can be found in Intel website
  • 13. 13 Thank YOU! Q & A Or contact Feng Wu <feng.wu@intel.com>
  • 15. VT-d Posted-Interrupts Support • Interrupt-remap-table-entry (IRTE) enhanced as follows: - An existing reserved bit claimed to indicated Posted-interrupt (PST) - Software may choose to “remap” or “post” each interrupt independently • IRTEs with ‘PST’ set are interpreted per below format - New Fields 15 • Descriptor Address: the address of the posted-interrupt descriptor • Virtual Vector: the guest vector of the interrupt • URG: indicates if the interrupt is urgent - Other fields continue to have the same meaning
  • 17. VT-d: Steps for Interrupt Posting 17 Read IRTE Interrupt Remapping ‘PST’ == 1 N Y Read Posted-interrupt descriptor (locking the cache-line) Set guest virtual in PIR (‘ON’ == 0) && (‘URG’ == 1 || ‘SN’ == 0) Y Y Set ‘ON’ and Generate notification event Unlock cache-line N Unlock cache-line