Process Address Space ID (PASID)

PASID is an optional feature that enables sharing of a single Endpoint device across multiple processes while providing each process a complete 64-bit virtual address space. In practice, this feature adds support for a TLP prefix that contains a 20-bit address space that can be added to memory transaction TLPs.

DMA重定向硬件一般位于Root Complex中,Root-Complex是PCIe系统中引入的概念,它将CPU、内存子系统和PCIe子系连接起来。如下图所示:

 

而Root Complex则经常被集成到CPU芯片上、MCH(Memory Controller Hub)上或者是IOH(I/O hub)上。

DMA重定向硬件将来自于I/O子系统的内存访问请求分为两类:

  • 不带地址空间ID的请求(Request without Process Address Space Identifier,即Request-without_PASID),相当于GPA(Guest Physical Address),这是一般Endpoint设备发出的内存访问请求,这类请求通常会表明该请求的类型(读、写或原子操作),DMA目标的地址、大小和发起请求的源设备的ID。
  1. 带有地址空间ID的请求(Request with Process Address Space Identifier,即Request-with-PASID),相当于GVA(Guest Virtual Address),能够发出这类请求的源PCI设备需要拥有virtual address capability,该请求带有额外的信息用于定位目标地址空间和一些其他信息。

不同虚拟机之间的隔离是通过防止分配到其他虚拟机的资源(CPU、I/O设备)访问到本虚拟机的物理地址。每个虚拟机都会有自己独立的物理地址空间,即GPA(Guest Physical Address)空间,该空间不同于主机物理地址空间,即HPA(Host Physical Address)空间。DMA重定向硬件将从I/O设备发过来的访问请求中包含的地址看做是DMA地址,根据不同的使用配置,该DMA地址可能是GPA;可能是跟PASID(Process Address Space ID)相关的VA(application Virtual Address);也可能是由软件定义的I/O虚拟地址(IOVA)。不管怎样,DMA重定向硬件将DMA地址最终转化为HPA(Host Physical Address)实现最终主机物理地址的访问[2020] PASID

Management in KVM - https://www.youtube.com/watch?v=xTwA3kC7ShA

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值