logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

GIC spec之介绍4

2.3处理中断的模型在多处理器实现中,存在下列模型来处理中断:Targeted distribution model:该模型可以应用于所有PPI和LPI。它也可以应用于:(1)如果GICD_IROUTER<n>.Interrupt_Routing_Mode==0,在非传统操作的SPI;(2)在传统操作时,当GICD_CTLR.ARE_*==0时,如果仅GICD_ITARGETSR&lt

架构学习之通用定时器

Generic timer介绍

文章图片
BLOCK层代码分析(4)IO下发之BIO的切分和合并

之前计划先将bounce过程,但bounce过程涉及bio的切分,因此本节将bio的操作:切分和合并。前面对bio的组织和分配做了基本的介绍,bio的切分是将一个bio分成两个bio,而合并准确来说是将bio与IO请求request进行合并。1. IO请求request和bio的关系下图反应了request和bio之间的关系。request是由在硬盘位置连续的bio链接起来的。图中request中

文章图片
IOMMU/SMMUV3代码分析(8)函数dma_map_sg()

函数dma_map_sg()为流式DMA MAP函数,它将包含多个物理内存区域的SGL映射到连续的IOVA上。与dma_alloc_coherent()相比,它将要映射的物理内存已经分配好,不需要像dma_alloc_coherent()那样在函数中分配,因此速度比dma_alloc_coherent()快,适用于动态分配的场景;另外dma_alloc_coherent()的设备一致性通常通过硬件

文章图片
BLOCK层代码分析(0)存储IO框架介绍

更新了BLOCK层代码分析(1)(2)后,觉得有必要对存储IO框架层次做介绍,因此增加了本小节。1.存储IO框架存储IO内核框架如下图所示:以上列出几种驱动的存储软件框架,包含NVME驱动/SAS驱动/SATA驱动。IO依次经过系统调用层、文件系统层、BLOCK层、SCSI层、LIBSAS/LIBATA层以及LLDD。但并不是所有的这些层都经过,比如对于NVME驱动,对接BLOCK层,并不会经过S

文章图片
VFIO代码分析(7)QEMU中VFIO实例化2

3 VFIO设备的内存信息和地址空间模拟先介绍VFIO中虚拟机中Guest中是如何访问BAR空间的。先看如下图:在Host中通过pci_iomap()将PCI设备的BAR0空间映射到内核地址空间;通过之前VFIO_GROUP_GET_DEVICE_FD将文件描述符fd与PCI设备进行关联,后面对fd的操作最终会操作PCI设备对应的内核地址空间;在QEMU中将文件描述符fd中region通过mmap

文章图片
QEMU monitor使用

QEMU monitor可以通过HMP和QMP链接虚拟机。1 HMP方式1.1 方式一1) 在启动qemu时添加如下命令:-qmp unix:/path/qmp-test,server,nowait \2)在host上使用命令链接:nc -U /path/qmp-test1.2 方式二1)在启动qemu时添加如下命令:-qmp telnet:127.0.0.1:4444,server,nowait

QEMU文档之bypass iommu

1 描述通常存在一个全局开关来enable/disable vIOMMU。系统中所有的设备仅能通过vIOMMU或全部不通过,这样使使用非常不灵活。我们介绍bypass iommu属性来让设备可以通过也可以不通过vIOMMU。这对于在相同虚拟机上使用no-iommu模式的passthrough设备和通过vIOMMU的设备非常有用。PCI host bridge也有一个bypass_iommu属性。该

Armv8-A虚拟化手册(5)

8. VHE下图呈现了一个简化的软件栈和异常级别:你可以看到一个独立的hypervisor是如何映射到ARM异常级别。hypervisor运行在EL2而虚拟机运行在EL0/1。这种情况在托管hypervisor上存在问题,如下图所示:通常,内核运行在EL1,但虚拟控制在EL2。这意味着大多数host OS运行在EL1,通过EL2的stub代码来访问虚拟化控制。这种安排效率低下,因为它可能涉及增加的

文章图片
    共 14 条
  • 1
  • 2
  • 请选择