Enviar pesquisa
Carregar
Project ACRN Device Model architecture introduction
•
0 gostou
•
112 visualizações
Project ACRN
Seguir
Project ACRN Device Model architecture introduction
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 20
Baixar agora
Baixar para ler offline
Recomendados
ACRN Kata Container on ACRN
ACRN Kata Container on ACRN
Project ACRN
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
Project ACRN
05.2 virtio introduction
05.2 virtio introduction
zenixls2
Volume Encryption In CloudStack
Volume Encryption In CloudStack
ShapeBlue
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
RISC-V International
Linux Internals - Kernel/Core
Linux Internals - Kernel/Core
Shay Cohen
VMware vSphere Performance Troubleshooting
VMware vSphere Performance Troubleshooting
Dan Brinkmann
OpenStack Ironic - Bare Metal-as-a-Service
OpenStack Ironic - Bare Metal-as-a-Service
Ramon Acedo Rodriguez
Recomendados
ACRN Kata Container on ACRN
ACRN Kata Container on ACRN
Project ACRN
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
Project ACRN
05.2 virtio introduction
05.2 virtio introduction
zenixls2
Volume Encryption In CloudStack
Volume Encryption In CloudStack
ShapeBlue
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
RISC-V International
Linux Internals - Kernel/Core
Linux Internals - Kernel/Core
Shay Cohen
VMware vSphere Performance Troubleshooting
VMware vSphere Performance Troubleshooting
Dan Brinkmann
OpenStack Ironic - Bare Metal-as-a-Service
OpenStack Ironic - Bare Metal-as-a-Service
Ramon Acedo Rodriguez
KVM tools and enterprise usage
KVM tools and enterprise usage
vincentvdk
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
Taeung Song
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
Linaro
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
Linux Kernel Live Patching
Linux Kernel Live Patching
GlobalLogic Ukraine
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
Novell
Project ACRN EtherCAT 101
Project ACRN EtherCAT 101
Project ACRN
Linux Network Stack
Linux Network Stack
Adrien Mahieux
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421
Linaro
Power vc for powervm deep dive tips & tricks
Power vc for powervm deep dive tips & tricks
solarisyougood
6 stages of linux boot process
6 stages of linux boot process
Teja Bheemanapally
Summary of linux kernel security protections
Summary of linux kernel security protections
Shubham Dubey
Kernel_Crash_Dump_Analysis
Kernel_Crash_Dump_Analysis
Buland Singh
from Binary to Binary: How Qemu Works
from Binary to Binary: How Qemu Works
Zhen Wei
Security Monitoring with eBPF
Security Monitoring with eBPF
Alex Maestretti
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
Linux booting process!!
Linux booting process!!
sourav verma
BPF Internals (eBPF)
BPF Internals (eBPF)
Brendan Gregg
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
Project ACRN
淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道
National Cheng Kung University
Qemu device prototyping
Qemu device prototyping
Yan Vugenfirer
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld
Mais conteúdo relacionado
Mais procurados
KVM tools and enterprise usage
KVM tools and enterprise usage
vincentvdk
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
Taeung Song
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
Linaro
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
Linux Kernel Live Patching
Linux Kernel Live Patching
GlobalLogic Ukraine
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
Novell
Project ACRN EtherCAT 101
Project ACRN EtherCAT 101
Project ACRN
Linux Network Stack
Linux Network Stack
Adrien Mahieux
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421
Linaro
Power vc for powervm deep dive tips & tricks
Power vc for powervm deep dive tips & tricks
solarisyougood
6 stages of linux boot process
6 stages of linux boot process
Teja Bheemanapally
Summary of linux kernel security protections
Summary of linux kernel security protections
Shubham Dubey
Kernel_Crash_Dump_Analysis
Kernel_Crash_Dump_Analysis
Buland Singh
from Binary to Binary: How Qemu Works
from Binary to Binary: How Qemu Works
Zhen Wei
Security Monitoring with eBPF
Security Monitoring with eBPF
Alex Maestretti
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
Linux booting process!!
Linux booting process!!
sourav verma
BPF Internals (eBPF)
BPF Internals (eBPF)
Brendan Gregg
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
Project ACRN
淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道
National Cheng Kung University
Mais procurados
(20)
KVM tools and enterprise usage
KVM tools and enterprise usage
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
USENIX Vault'19: Performance analysis in Linux storage stack with BPF
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
Linux Kernel Live Patching
Linux Kernel Live Patching
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
Project ACRN EtherCAT 101
Project ACRN EtherCAT 101
Linux Network Stack
Linux Network Stack
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421
Power vc for powervm deep dive tips & tricks
Power vc for powervm deep dive tips & tricks
6 stages of linux boot process
6 stages of linux boot process
Summary of linux kernel security protections
Summary of linux kernel security protections
Kernel_Crash_Dump_Analysis
Kernel_Crash_Dump_Analysis
from Binary to Binary: How Qemu Works
from Binary to Binary: How Qemu Works
Security Monitoring with eBPF
Security Monitoring with eBPF
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
Linux booting process!!
Linux booting process!!
BPF Internals (eBPF)
BPF Internals (eBPF)
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
ACRN vMeet-Up EU 2021 - shared memory based inter-vm communication introduction
淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道
Semelhante a Project ACRN Device Model architecture introduction
Qemu device prototyping
Qemu device prototyping
Yan Vugenfirer
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld
bhyve Device Emulation Introduction
bhyve Device Emulation Introduction
bsdvirt
Study on Android Emulator
Study on Android Emulator
Samael Wang
Esx.sc.quickref
Esx.sc.quickref
hellocn
ACRN vMeet-Up EU 2021 - installation and configuration introduction
ACRN vMeet-Up EU 2021 - installation and configuration introduction
Project ACRN
sponsorAVAST-VB2014
sponsorAVAST-VB2014
Martin Hron
Project ACRN configuration scenarios and config tool
Project ACRN configuration scenarios and config tool
Project ACRN
Trouble shooting apachecloudstack
Trouble shooting apachecloudstack
Sailaja Sunil
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
buildacloud
Checking Oracle VM VirtualBox. Part 1
Checking Oracle VM VirtualBox. Part 1
Andrey Karpov
Nested virtualization & PCI pass-through
Nested virtualization & PCI pass-through
OpenNebula Project
2014.08.30 Virtual Machine Threat 세미나
2014.08.30 Virtual Machine Threat 세미나
용환 노
Optimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and Vulkan
ax inc.
Labs_BT_20221017.pptx
Labs_BT_20221017.pptx
ssuserb4d806
Oracle VM3: Virtuelle Maschinen per Script erstellen
Oracle VM3: Virtuelle Maschinen per Script erstellen
Trivadis
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
Project ACRN
Php version 7
Php version 7
RANVIJAY GAUR
Cloud stack troubleshooting
Cloud stack troubleshooting
AlexTian
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzer
Dmitry Vyukov
Semelhante a Project ACRN Device Model architecture introduction
(20)
Qemu device prototyping
Qemu device prototyping
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
bhyve Device Emulation Introduction
bhyve Device Emulation Introduction
Study on Android Emulator
Study on Android Emulator
Esx.sc.quickref
Esx.sc.quickref
ACRN vMeet-Up EU 2021 - installation and configuration introduction
ACRN vMeet-Up EU 2021 - installation and configuration introduction
sponsorAVAST-VB2014
sponsorAVAST-VB2014
Project ACRN configuration scenarios and config tool
Project ACRN configuration scenarios and config tool
Trouble shooting apachecloudstack
Trouble shooting apachecloudstack
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Checking Oracle VM VirtualBox. Part 1
Checking Oracle VM VirtualBox. Part 1
Nested virtualization & PCI pass-through
Nested virtualization & PCI pass-through
2014.08.30 Virtual Machine Threat 세미나
2014.08.30 Virtual Machine Threat 세미나
Optimizing NN inference performance on Arm NEON and Vulkan
Optimizing NN inference performance on Arm NEON and Vulkan
Labs_BT_20221017.pptx
Labs_BT_20221017.pptx
Oracle VM3: Virtuelle Maschinen per Script erstellen
Oracle VM3: Virtuelle Maschinen per Script erstellen
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
ACRN vMeet-Up EU 2021 - hypervisor new platform enabling
Php version 7
Php version 7
Cloud stack troubleshooting
Cloud stack troubleshooting
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzer
Mais de Project ACRN
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
Project ACRN
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
Project ACRN
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
Project ACRN
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
Project ACRN
ACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - community and development model
Project ACRN
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
Project ACRN
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
Project ACRN
Project ACRN Yocto Project meta-acrn layer introduction
Project ACRN Yocto Project meta-acrn layer introduction
Project ACRN
Project ACRN USB mediator introduction
Project ACRN USB mediator introduction
Project ACRN
Project ACRN I2C mediator introduction
Project ACRN I2C mediator introduction
Project ACRN
Project ACRN system debug
Project ACRN system debug
Project ACRN
Project ACRN SR-IOV on ACRN
Project ACRN SR-IOV on ACRN
Project ACRN
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN
Project ACRN how to build a Yocto Project-based SOS
Project ACRN how to build a Yocto Project-based SOS
Project ACRN
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN
Project ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorial
Project ACRN
Project ACRN GPIO mediator introduction
Project ACRN GPIO mediator introduction
Project ACRN
Project ACRN schedule framework introduction
Project ACRN schedule framework introduction
Project ACRN
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough Introduction
Project ACRN
Project ACRN CSE Virtualization
Project ACRN CSE Virtualization
Project ACRN
Mais de Project ACRN
(20)
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - Boot Process and Secure Boot
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 - functional safety design and certification plan
ACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - community and development model
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Real Time Management and Performance Optimization
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
ACRN vMeet-Up EU 2021 - Introduction and Architecture Look Forward
Project ACRN Yocto Project meta-acrn layer introduction
Project ACRN Yocto Project meta-acrn layer introduction
Project ACRN USB mediator introduction
Project ACRN USB mediator introduction
Project ACRN I2C mediator introduction
Project ACRN I2C mediator introduction
Project ACRN system debug
Project ACRN system debug
Project ACRN SR-IOV on ACRN
Project ACRN SR-IOV on ACRN
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN CPU sharing BVT scheduler in ACRN hypervisor
Project ACRN how to build a Yocto Project-based SOS
Project ACRN how to build a Yocto Project-based SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Project ACRN GVT-d introduction and tutorial
Project ACRN GVT-d introduction and tutorial
Project ACRN GPIO mediator introduction
Project ACRN GPIO mediator introduction
Project ACRN schedule framework introduction
Project ACRN schedule framework introduction
Project ACRN Device Passthrough Introduction
Project ACRN Device Passthrough Introduction
Project ACRN CSE Virtualization
Project ACRN CSE Virtualization
Último
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
Roberto Pérez Alcolea
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
vaideheekore1
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Applitools
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
Andrey Devyatkin
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
Lionel Briand
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
kalichargn70th171
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
OnePlan Solutions
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
Abdul Ahad
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
maor17
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
Shane Coughlan
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
Tier1 app
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
Jean Silva
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
rahul_net
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
Christopher Curtin
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
Alexandre Beguel
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
KrzysztofKkol1
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
Andreas Kunz
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
manoharjgpsolutions
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
Neo4j
Último
(20)
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
Project ACRN Device Model architecture introduction
1.
ACRN Device Model
Architecture Introduction Yuan LIU Liu, Yuan1 <yuan1.liu@intel.com> 03/25/2020
2.
Agenda ❑Device Model Overview ❑Device
Model Initialization ❑Device Emulation ❑ACPI Virtualization
3.
Device Model Framework ACRN
Device Model (DM) is a QEMU-like application in SOS and it is responsible for creating a UOS VM and then performing devices emulation based on command line configurations.
4.
Device Model Configuration acrn-dm
-A -m 2048M -s 0:0,hostbridge -s 2,pci-gvt -G "64 448 8“ -s 5,virtio-blk,/home/clear/uos/uos.img -s 6,virtio-net,tap0 -s 7,passthru,0/15/1 --ovmf /usr/share/acrn/bios/OVMF.fd vm1 acrn-hypervisor/devicemodel/samples https://projectacrn.github.io/latest/user-guides/acrn-dm-parameters.html#acrn-dm-parameters
5.
Agenda ❑Device Model Overview ❑Device
Model Initialization ❑Device Emulation ❑ACPI Virtualization
6.
Device Model Booting
Flow Start DM Parse Option Create VM Setup IO Request Buffer Setup Memory Virtual Devices Init ACPI InitSW Load Start VM Loop Start Mevent Loop OVMF EFI bzImage vSBL UOS memory is allocated from SOS memory Huge TLB Open /dev/vhm IC_CREATE_VM vm_id Create I/O request client Handle IO Request VM Name UOS Memory Size Virtual Devices … Micro event Asynchronous message mechanism based on Linux epoll A page buffer allocated by DM, shared between DM, VHM service and HV. Build guest ACPI table Full tables RSDP, RSDT, XSDT, MADT, FADT, HPET, MCFG All emulated devices initialization
7.
Virtual Device Initialization vISA
Device Init vPCI Device Init Monitor Init MMIO Init PIO Init vPIRQ Init PIO Handler Register struct inout_port { const char *name; int port; int size; int flags; inout_func_t handler; void *arg; }; int register_inout(struct inout_port *iop); int unregister_inout(struct inout_port *iop); #define INOUT_PORT(name, port, flags, handler) MMIO Handler Register struct mem_range { const char *name; int flags; mem_func_t handler; void *arg1; long arg2; uint64_t base; uint64_t size; }; int register_mem(struct mem_range *memp); int unregister_mem(struct mem_range *memp);
8.
Default Guest Memory
Layout 2G 0 3.5G 4G 64-bit PCI Hole RAM 5G 32-bit PCI Hole Low memory High memory RAM ACPI MMCFG IOAPIC HPET LAPCI acrn-hypervisor/devicemodel/core/sw_load_common.c
9.
Agenda ❑Device Model Overview ❑Device
Model Initialization ❑Device Emulation ❑ACPI Virtualization
10.
Device Emulation ⚫ Device
Register • PCI Configuration Space • PORT IO • Memory Mapped IO ⚫ Interrupt • MSI/MSIX • INTX ⚫ Function Emulation
11.
__set_pci_vdev_ops_set_sym_pci_ops_ahci Virtual PCI Device
Registration set_pci_vdev_ops_set Section struct pci_vdev_ops pci_ops_xhci = { .class_name = "xhci", .vdev_init = pci_xhci_init, .vdev_deinit = pci_xhci_deinit, .vdev_barwrite = pci_xhci_write, .vdev_barread = pci_xhci_read }; DEFINE_PCI_DEVTYPE(pci_ops_xhci); struct pci_vdev_ops pci_ops_wdt = { .class_name = "wdt-i6300esb", .vdev_init = pci_wdt_init, .vdev_deinit = pci_wdt_deinit, .vdev_cfgwrite = pci_wdt_cfg_write, .vdev_cfgread = pci_wdt_cfg_read, .vdev_barwrite = pci_wdt_bar_write, .vdev_barread = pci_wdt_bar_read }; DEFINE_PCI_DEVTYPE(pci_ops_wdt); __set_pci_vdev_ops_set_sym_pci_ops_wdt … .interp Section set_logger_dev_op Section … … acrn-dm Section Headers
12.
Virtual PCI Device
Operations struct pci_vdev_ops { char *class_name; /* Name of device class */ /* instance creation */ int (*vdev_init)(struct vmctx *, struct pci_vdev *, char *opts); /* instance deinit */ void (*vdev_deinit)(struct vmctx *, struct pci_vdev *, char *opts); /* ACPI DSDT enumeration */ void (*vdev_write_dsdt)(struct pci_vdev *); /* ops related to physical resources */ void (*vdev_phys_access)(struct vmctx *ctx, struct pci_vdev *dev); /* config space read/write callbacks */ int (*vdev_cfgwrite)(struct vmctx *ctx, int vcpu, struct pci_vdev *pi, int offset, int bytes, uint32_t val); int (*vdev_cfgread)(struct vmctx *ctx, int vcpu, struct pci_vdev *pi, int offset, int bytes, uint32_t *retval); /* BAR read/write callbacks */ void (*vdev_barwrite)(struct vmctx *ctx, int vcpu, struct pci_vdev *pi, int baridx, uint64_t offset, int size, uint64_t value); uint64_t (*vdev_barread)(struct vmctx *ctx, int vcpu, struct pci_vdev *pi, int baridx, uint64_t offset, int size); };
13.
Virtual PCI Device
Configuration Space Virtual PCI device PCI Capability pci_set_cfgdata8 pci_set_cfgdata16 pci_set_cfgdata32 pci_emul_add_capability pci_emul_add_msicap pci_emul_add_msixcap pci_emul_alloc_bar pci_lintr_request
14.
Virtual PCI Interrupt pci_generate_msi pci_generate_msix pci_lintr_assert pci_lintr_deassert v Device
Model Virtual PCI Device (INTx or MSI) vLAPCI0 vLAPIC1 Virtual Interrupt HandlerHypervisor Service OS User OS vCPU0 vCPU1 vIOAPIC msi/msixmsi/msix
15.
Port I/O Emulation
Flow MMIO access flow is similar except for a VM exit reason of EPT violation. 8
16.
Agenda ❑Device Model Overview ❑Device
Model Initialization ❑Device Emulation ❑ACPI Virtualization
17.
ACPI - Advanced
Configuration and Power Interface Functions implemented by ACPI include: • System/Device/Processor power management • Device/Processor performance management • Configuration / Plug and Play • System event • Battery management • Thermal management
18.
ACPI Table Virtualization acrn-hypervisor/devicemodel/hw/platform/acpi/acpi.c struct
pci_vdev_ops { ... /* ACPI DSDT enumeration */ void (*vdev_write_dsdt)(struct pci_vdev *); … };
19.
References https://projectacrn.github.io/latest/developer-guides/hld/hld-devicemodel.html https://projectacrn.github.io/latest/developer-guides/hld/hv-io-emulation.html#hld-io-emulation https://projectacrn.github.io/latest/developer-guides/hld/hld-emulated-devices.html#
20.
Q & A
Baixar agora