SlideShare a Scribd company logo
ARM®
Interrupt Virtualization
Andre Przywara <andre.przywara@arm.com>
ARM Ltd., Cambridge, UK
Xen summit 12/07/2017
© ARM 2017
ARM interrrupt virtualization agenda
GICv2 and virtualization overview
Xen vGIC implementation
Rework plans
GICv3/ITS architecture changes
ITS emulation challenges
2 © ARM 2017
GICv2 architecture
Device
CPU interface CPU interface CPU interface
Device Device
Core 0 Core 1 Core n....
AXI bus
IRQ lines (SPIs)
GICv2
....
SGIs
Distributor
PPIs
IRQ/FIQ
3 © ARM 2017
ARM GICv2 at a glance
”distributor” is the central component
supports up to 8 CPUs and 1020 interrupts (988 shared + 32 private)
has an input pin for each wired interrupt (SPIs)
connects to separate CPU interfaces (one per core)
has per-core input pins for private interrupts (PPIs)
handles inter-processor interrupts internally (SGIs)
Programmed via MMIO accesses
Configuration affects always a group of interrupts (32-bit registers)
Some registers are banked per CPU (at the same memory address)
4 © ARM 2017
Virtualization support in GICv2
Virtual CPU interface allows IRQ ACKs and EOIs without exiting the guest
Hypervisor sets up virtual IRQs in List Registers (LRs)
In the guest the (virtual) CPU interface relates to these
Allows connecting a physical interrupt to a virtual one
Physical IRQs gets EOIed at the same time
No need to trap or monitor EOI in this case anymore
Distributor
IRQ lines (SPIs)
GICCGICV
LRs
GICH
CPU interface
5 © ARM 2017
Xen vGIC implementation
Lives in xen/arch/arm (shared between arm(32) and arm64)
Distributor is emulated (mostly in vgic-v2.c)
Pending interrupts are written into the list registers (LRs)
Interrupt acknowledgment and EOI is handled without
exiting the guest (by the GIC hardware)
After guest run distributor emulation syncs back from
the LRs
Virtual IRQ configuration is stored in ranks (groups of
IRQs)
GICV
LRs
CPU interface
Distributor
(emulated)
GICCGICH
virtual IRQs
traps
6 © ARM 2017
vGIC implementation design
Code design is centered around MMIO IRQ grouping (ranks)
One lock per VCPU and one lock per rank
Sophisticated lockless tricks to avoid excessive rank locking
IRQ 32
IRQ 33
ISENABLER:
. . . .
IRQ 63
IRQ 62
IRQ 61
031
IRQ 34
ITARGETSR:
IRQ 32IRQ 33IRQ 34IRQ 35
0781516232431
BUT:
7 © ARM 2017
Implementation issues and limitations
Distributor accesses are rare (during IRQ configuration only)
VCPU entry/exit path is much more frequent and sensitive
State is held in bitmaps and bytemaps covering contigious IRQ numbers
proves problematic with sparse LPI allocation (later)
Handling of level vs. edge triggered interrupts
8 © ARM 2017
vGIC rework
To bring ITS/LPI support closer to the existing code base:
Store all virtual IRQ properties in struct pending_irq
Protect with one lock per IRQ
Get rid of the ranks and their locks at all
Simplify IRQ list management (remove lr_queue list)
Introduce reference counting for dynamic pending_irq’s
Model level-triggered interrupts correctly
9 © ARM 2017
GICv3 architecture
Device Device Device Device Device
....
AXI bus
IRQ lines (SPIs)
....
SGIs
Distributor
PPIs
GICv3
Redistributor Redistributor Redistributor
Core 0 Core 1 Core n
CPU interface CPU interface CPU interface
ITS
Memory
IRQ/FIQ
MSI MSI
10 © ARM 2017
GICv3 changes
System register access to CPU interface (drops banked MMIO)
IRQ routing allows millions of cores
Lifts the 8-CPU limit of GICv2
Uses MPIDR based values to specify one target core per IRQ
Splits distributor to separate private and shared IRQs
New class of interrupts (LPI) via an Interrupt Translation Service (ITS)
Allows MSI/MSI-X support
Supports indirections for target cores (via collections)
Introduces device ID sampled from the bus
New IRQ class with possibly thousands of LPIs and probably sparse allocation
Tables are held in physical memory
11 © ARM 2017
GICv3/ITS Xen implications
Potentially large, sparsely allocated LPIs spoil vGICv2 ranks
Requires dynamic allocation (and de-allocation → ref-counting)
Motivates storing all IRQ property in struct pending_irq
Brings up locking issues (solution: per-IRQ lock)
ITS data structures are held in guest physical memory
Need to reach into domain memory (fortunately cheap on ARM64)
Creates security question (we can’t trust this memory)
Provides natural resource limitation (more LPIs → more memory)
Caching is architected and common in hardware too
12 © ARM 2017
ITS tables (simplified)
device
command
prop pend
coll
13 © ARM 2017
ITS challenges
Security and DOS challenges:
Untrusted guest memory holds internal information
Need to sanitise information on every access
(sometimes not feasible)
Accessing guest memory is not for free
Looking at getting rid of storing information there
Guest could fill (potentially large) emulated command queue
Architecture allows defered execution
But we need to schedule this!
Some guest actions may require host action
Disabling or enabling interrupts is one case
To avoid IRQ storms we want to disable IRQs on the hardware
Requires queueing an ITS command to the host command queue
May open DOS vector when a domain often disables/enables LPIs
14 © ARM 2017
Preliminary fixes
ITS emulation only for Dom0 → trust the guest
Untrusted guest memory holds internal information
Sanitise as much as possible
Trust the guest!
Guest could fill (potentially large) emulated command queue
Real World Dom0s only schedule two or three commands
Trust the guest!
Some guest actions may require host action
Keep interrupts enabled on the host
Detect guest disabled IRQs early
Ignore IRQ storms for now (trust the guest!)
15 © ARM 2017
Xen questions
Accessing shared host resources on behalf of guests
Could introduce deferred host command queueing
How to schedule commands?
Suspend vCPUs until commands have been executed?
More costly emulation on behalf of a guest
Return early when timeslice expires!
But when to return to continue the work?
Deschedule guest while in an MMIO emulation?
Schedule tasklet on account of a guest?
16 © ARM 2017
The trademarks featured in this presentation are registered and/or unregistered trademarks of ARM limited
(or its subsidiaries) in the EU and/or elsewhere. All rights reserved. All other marks featured may be
trademarks of their respective owners.
Copyright © 2016 ARM Limited
© ARM 2017

More Related Content

PDF
Qemu device prototyping
PDF
Xen and the art of embedded virtualization (ELC 2017)
PDF
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
PDF
QEMU Disk IO Which performs Better: Native or threads?
PDF
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
PDF
Let's trace Linux Lernel with KGDB @ COSCUP 2021
PPTX
Linux Kernel MMC Storage driver Overview
PDF
Porting Android
Qemu device prototyping
Xen and the art of embedded virtualization (ELC 2017)
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
QEMU Disk IO Which performs Better: Native or threads?
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Linux Kernel MMC Storage driver Overview
Porting Android

What's hot (20)

PDF
Interrupt Affinityについて
PPTX
Linux Initialization Process (2)
PDF
Kdump and the kernel crash dump analysis
PDF
UEFIで始めるLinux From Scratch
PDF
Arm device tree and linux device drivers
PDF
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
PPTX
Understanding eBPF in a Hurry!
PDF
ACPI Debugging from Linux Kernel
PDF
Function Level Analysis of Linux NVMe Driver
PDF
The Linux Block Layer - Built for Fast Storage
PDF
LAS16-200: SCMI - System Management and Control Interface
PDF
Kernel Recipes 2015: Anatomy of an atomic KMS driver
PDF
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
PPT
U boot porting guide for SoC
PDF
LCU14 500 ARM Trusted Firmware
PDF
Android IPC Mechanism
PDF
Understanding the Android System Server
PPT
Hardware accelerated Virtualization in the ARM Cortex™ Processors
PDF
Xen Memory Management
PDF
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
Interrupt Affinityについて
Linux Initialization Process (2)
Kdump and the kernel crash dump analysis
UEFIで始めるLinux From Scratch
Arm device tree and linux device drivers
Static Partitioning with Xen, LinuxRT, and Zephyr: A Concrete End-to-end Exam...
Understanding eBPF in a Hurry!
ACPI Debugging from Linux Kernel
Function Level Analysis of Linux NVMe Driver
The Linux Block Layer - Built for Fast Storage
LAS16-200: SCMI - System Management and Control Interface
Kernel Recipes 2015: Anatomy of an atomic KMS driver
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
U boot porting guide for SoC
LCU14 500 ARM Trusted Firmware
Android IPC Mechanism
Understanding the Android System Server
Hardware accelerated Virtualization in the ARM Cortex™ Processors
Xen Memory Management
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
Ad

Similar to XPDDS17: Reworking the ARM GIC Emulation & Xen Challenges in the ARM ITS Emulation (20)

PPTX
2014/09/02 Cisco UCS HPC @ ANL
PDF
Lecture Presentation 8.pdfLecture Presentation 8.pdf
PPTX
RISC-V 30906 hex five multi_zone iot firmware
PDF
Enhance Virtualization Stack with Intel CET and MPX
PDF
From L3 to seL4: What have we learnt in 20 years of L4 microkernels
PDF
IRQs: the Hard, the Soft, the Threaded and the Preemptible
PDF
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
PDF
Achieving Performance Isolation with Lightweight Co-Kernels
PPTX
Static partitioning virtualization on RISC-V
PDF
Ceph Day Shanghai - On the Productization Practice of Ceph
PDF
Readactor-Practical Code Randomization Resilient to Memory Disclosure
PDF
Introduction to Advanced embedded systems course
PPTX
dvance computer architecture computer architecture: a quantitative approach c...
PPTX
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
PDF
15-382_TenAsys-RTOS-DataSheet_HI
PPTX
HiPEAC 2022-DL4IoT workshop_René Griessl presentation
PPTX
Liqid: Composable CXL Preview
PDF
RIOT: towards open source, secure DevOps on microcontroller-based IoT
PDF
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
PPTX
VEDLIoT at FPL'23_Accelerators for Heterogenous Computing in AIoT
2014/09/02 Cisco UCS HPC @ ANL
Lecture Presentation 8.pdfLecture Presentation 8.pdf
RISC-V 30906 hex five multi_zone iot firmware
Enhance Virtualization Stack with Intel CET and MPX
From L3 to seL4: What have we learnt in 20 years of L4 microkernels
IRQs: the Hard, the Soft, the Threaded and the Preemptible
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
Achieving Performance Isolation with Lightweight Co-Kernels
Static partitioning virtualization on RISC-V
Ceph Day Shanghai - On the Productization Practice of Ceph
Readactor-Practical Code Randomization Resilient to Memory Disclosure
Introduction to Advanced embedded systems course
dvance computer architecture computer architecture: a quantitative approach c...
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
15-382_TenAsys-RTOS-DataSheet_HI
HiPEAC 2022-DL4IoT workshop_René Griessl presentation
Liqid: Composable CXL Preview
RIOT: towards open source, secure DevOps on microcontroller-based IoT
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
VEDLIoT at FPL'23_Accelerators for Heterogenous Computing in AIoT
Ad

More from The Linux Foundation (20)

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

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Modernizing your data center with Dell and AMD
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Empathic Computing: Creating Shared Understanding
PPTX
MYSQL Presentation for SQL database connectivity
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
KodekX | Application Modernization Development
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Network Security Unit 5.pdf for BCA BBA.
Modernizing your data center with Dell and AMD
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Empathic Computing: Creating Shared Understanding
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
KodekX | Application Modernization Development
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Spectral efficient network and resource selection model in 5G networks
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

XPDDS17: Reworking the ARM GIC Emulation & Xen Challenges in the ARM ITS Emulation

  • 1. ARM® Interrupt Virtualization Andre Przywara <andre.przywara@arm.com> ARM Ltd., Cambridge, UK Xen summit 12/07/2017 © ARM 2017
  • 2. ARM interrrupt virtualization agenda GICv2 and virtualization overview Xen vGIC implementation Rework plans GICv3/ITS architecture changes ITS emulation challenges 2 © ARM 2017
  • 3. GICv2 architecture Device CPU interface CPU interface CPU interface Device Device Core 0 Core 1 Core n.... AXI bus IRQ lines (SPIs) GICv2 .... SGIs Distributor PPIs IRQ/FIQ 3 © ARM 2017
  • 4. ARM GICv2 at a glance ”distributor” is the central component supports up to 8 CPUs and 1020 interrupts (988 shared + 32 private) has an input pin for each wired interrupt (SPIs) connects to separate CPU interfaces (one per core) has per-core input pins for private interrupts (PPIs) handles inter-processor interrupts internally (SGIs) Programmed via MMIO accesses Configuration affects always a group of interrupts (32-bit registers) Some registers are banked per CPU (at the same memory address) 4 © ARM 2017
  • 5. Virtualization support in GICv2 Virtual CPU interface allows IRQ ACKs and EOIs without exiting the guest Hypervisor sets up virtual IRQs in List Registers (LRs) In the guest the (virtual) CPU interface relates to these Allows connecting a physical interrupt to a virtual one Physical IRQs gets EOIed at the same time No need to trap or monitor EOI in this case anymore Distributor IRQ lines (SPIs) GICCGICV LRs GICH CPU interface 5 © ARM 2017
  • 6. Xen vGIC implementation Lives in xen/arch/arm (shared between arm(32) and arm64) Distributor is emulated (mostly in vgic-v2.c) Pending interrupts are written into the list registers (LRs) Interrupt acknowledgment and EOI is handled without exiting the guest (by the GIC hardware) After guest run distributor emulation syncs back from the LRs Virtual IRQ configuration is stored in ranks (groups of IRQs) GICV LRs CPU interface Distributor (emulated) GICCGICH virtual IRQs traps 6 © ARM 2017
  • 7. vGIC implementation design Code design is centered around MMIO IRQ grouping (ranks) One lock per VCPU and one lock per rank Sophisticated lockless tricks to avoid excessive rank locking IRQ 32 IRQ 33 ISENABLER: . . . . IRQ 63 IRQ 62 IRQ 61 031 IRQ 34 ITARGETSR: IRQ 32IRQ 33IRQ 34IRQ 35 0781516232431 BUT: 7 © ARM 2017
  • 8. Implementation issues and limitations Distributor accesses are rare (during IRQ configuration only) VCPU entry/exit path is much more frequent and sensitive State is held in bitmaps and bytemaps covering contigious IRQ numbers proves problematic with sparse LPI allocation (later) Handling of level vs. edge triggered interrupts 8 © ARM 2017
  • 9. vGIC rework To bring ITS/LPI support closer to the existing code base: Store all virtual IRQ properties in struct pending_irq Protect with one lock per IRQ Get rid of the ranks and their locks at all Simplify IRQ list management (remove lr_queue list) Introduce reference counting for dynamic pending_irq’s Model level-triggered interrupts correctly 9 © ARM 2017
  • 10. GICv3 architecture Device Device Device Device Device .... AXI bus IRQ lines (SPIs) .... SGIs Distributor PPIs GICv3 Redistributor Redistributor Redistributor Core 0 Core 1 Core n CPU interface CPU interface CPU interface ITS Memory IRQ/FIQ MSI MSI 10 © ARM 2017
  • 11. GICv3 changes System register access to CPU interface (drops banked MMIO) IRQ routing allows millions of cores Lifts the 8-CPU limit of GICv2 Uses MPIDR based values to specify one target core per IRQ Splits distributor to separate private and shared IRQs New class of interrupts (LPI) via an Interrupt Translation Service (ITS) Allows MSI/MSI-X support Supports indirections for target cores (via collections) Introduces device ID sampled from the bus New IRQ class with possibly thousands of LPIs and probably sparse allocation Tables are held in physical memory 11 © ARM 2017
  • 12. GICv3/ITS Xen implications Potentially large, sparsely allocated LPIs spoil vGICv2 ranks Requires dynamic allocation (and de-allocation → ref-counting) Motivates storing all IRQ property in struct pending_irq Brings up locking issues (solution: per-IRQ lock) ITS data structures are held in guest physical memory Need to reach into domain memory (fortunately cheap on ARM64) Creates security question (we can’t trust this memory) Provides natural resource limitation (more LPIs → more memory) Caching is architected and common in hardware too 12 © ARM 2017
  • 14. ITS challenges Security and DOS challenges: Untrusted guest memory holds internal information Need to sanitise information on every access (sometimes not feasible) Accessing guest memory is not for free Looking at getting rid of storing information there Guest could fill (potentially large) emulated command queue Architecture allows defered execution But we need to schedule this! Some guest actions may require host action Disabling or enabling interrupts is one case To avoid IRQ storms we want to disable IRQs on the hardware Requires queueing an ITS command to the host command queue May open DOS vector when a domain often disables/enables LPIs 14 © ARM 2017
  • 15. Preliminary fixes ITS emulation only for Dom0 → trust the guest Untrusted guest memory holds internal information Sanitise as much as possible Trust the guest! Guest could fill (potentially large) emulated command queue Real World Dom0s only schedule two or three commands Trust the guest! Some guest actions may require host action Keep interrupts enabled on the host Detect guest disabled IRQs early Ignore IRQ storms for now (trust the guest!) 15 © ARM 2017
  • 16. Xen questions Accessing shared host resources on behalf of guests Could introduce deferred host command queueing How to schedule commands? Suspend vCPUs until commands have been executed? More costly emulation on behalf of a guest Return early when timeslice expires! But when to return to continue the work? Deschedule guest while in an MMIO emulation? Schedule tasklet on account of a guest? 16 © ARM 2017
  • 17. The trademarks featured in this presentation are registered and/or unregistered trademarks of ARM limited (or its subsidiaries) in the EU and/or elsewhere. All rights reserved. All other marks featured may be trademarks of their respective owners. Copyright © 2016 ARM Limited © ARM 2017