Lines Matching refs:I
16 I/O请求处理
19 客户虚拟机的I/O请求由超级管理器构建,由ACRN超级管理器服务模块分发到与I/O请求的地址范
20 围相对应的I/O客户端。I/O请求处理的细节将在以下章节描述。
22 1. I/O请求
26 I/O请求通信。一个I/O请求是一个256字节的结构体缓冲区,它是 "acrn_io_request" 结构
27 体,当客户虚拟机中发生被困的I/O访问时,由超级管理器的I/O处理器填充。服务虚拟机中的
29 台。缓冲区被用作16个I/O请求槽的数组,每个I/O请求槽为256字节。这个数组是按vCPU ID
32 2. I/O客户端
35 一个I/O客户端负责处理客户虚拟机的I/O请求,其访问的GPA在一定范围内。每个客户虚拟机
36 可以关联多个I/O客户端。每个客户虚拟机都有一个特殊的客户端,称为默认客户端,负责处理
37 所有不在其他客户端范围内的I/O请求。ACRN用户空间充当每个客户虚拟机的默认客户端。
39 下面的图示显示了I/O请求共享缓冲区、I/O请求和I/O客户端之间的关系。
50 || | | | +-----------------+ | I/O客户端 | | | |
59 || | | | I/O客户端 | | | |
68 | | I/O处理 | ACRN超级管理器 |
72 3. I/O请求状态转换
75 一个ACRN I/O请求的状态转换如下。
81 - FREE: 这个I/O请求槽是空的
82 - PENDING: 在这个槽位上有一个有效的I/O请求正在等待
83 - PROCESSING: 正在处理I/O请求
84 - COMPLETE: 该I/O请求已被处理
86 处于COMPLETE或FREE状态的I/O请求是由超级管理器拥有的。HSM和ACRN用户空间负责处理其
89 4. I/O请求的处理流程
92 a. 当客户虚拟机中发生被陷入的I/O访问时,超级管理器的I/O处理程序将把I/O请求填充为
95 c. upcall处理程序会安排一个工作者来调度I/O请求。
96 d. 工作者寻找PENDING I/O请求,根据I/O访问的地址将其分配给不同的注册客户,将其
98 e. 被通知的客户端处理指定的I/O请求。
99 f. HSM将I/O请求状态更新为COMPLETE,并通过hypercalls通知超级管理器完成。