Documentation/translations/zh_CN/virt/acrn/io-request.rst

Source file repositories/reference/linux-study-clean/Documentation/translations/zh_CN/virt/acrn/io-request.rst

File Facts

System
Linux kernel
Corpus path
Documentation/translations/zh_CN/virt/acrn/io-request.rst
Extension
.rst
Size
4446 bytes
Lines
100
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0
.. include:: ../../disclaimer-zh_CN.rst

:Original: Documentation/virt/acrn/io-request.rst

:翻译:

 司延腾 Yanteng Si <siyanteng@loongson.cn>

:校译:

 时奎亮 Alex Shi <alexs@kernel.org>

.. _cn_virt_acrn_io-request:

I/O请求处理
===========

客户虚拟机的I/O请求由超级管理器构建,由ACRN超级管理器服务模块分发到与I/O请求的地址范
围相对应的I/O客户端。I/O请求处理的细节将在以下章节描述。

1. I/O请求
----------

对于每个客户虚拟机,有一个共享的4KB字节的内存区域,用于超级管理器和服务虚拟机之间的
I/O请求通信。一个I/O请求是一个256字节的结构体缓冲区,它是 "acrn_io_request" 结构
体,当客户虚拟机中发生被困的I/O访问时,由超级管理器的I/O处理器填充。服务虚拟机中的
ACRN用户空间首先分配一个4KB字节的页面,并将缓冲区的GPA(客户物理地址)传递给管理平
台。缓冲区被用作16个I/O请求槽的数组,每个I/O请求槽为256字节。这个数组是按vCPU ID
索引的。

2. I/O客户端
------------

一个I/O客户端负责处理客户虚拟机的I/O请求,其访问的GPA在一定范围内。每个客户虚拟机
可以关联多个I/O客户端。每个客户虚拟机都有一个特殊的客户端,称为默认客户端,负责处理
所有不在其他客户端范围内的I/O请求。ACRN用户空间充当每个客户虚拟机的默认客户端。

下面的图示显示了I/O请求共享缓冲区、I/O请求和I/O客户端之间的关系。

::

     +------------------------------------------------------+
     |                                       服务VM         |
     |+--------------------------------------------------+  |
     ||      +----------------------------------------+  |  |
     ||      | 共享页                 ACRN用户空间    |  |  |
     ||      |    +-----------------+  +------------+ |  |  |
     ||   +----+->| acrn_io_request |<-+  默认      | |  |  |
     ||   |  | |  +-----------------+  | I/O客户端  | |  |  |
     ||   |  | |  |       ...       |  +------------+ |  |  |
     ||   |  | |  +-----------------+                 |  |  |
     ||   |  +-|--------------------------------------+  |  |
     ||---|----|-----------------------------------------|  |
     ||   |    |                             内核        |  |
     ||   |    |            +----------------------+     |  |
     ||   |    |            | +-------------+  HSM |     |  |
     ||   |    +--------------+             |      |     |  |
     ||   |                 | | I/O客户端   |      |     |  |
     ||   |                 | |             |      |     |  |
     ||   |                 | +-------------+      |     |  |
     ||   |                 +----------------------+     |  |
     |+---|----------------------------------------------+  |
     +----|-------------------------------------------------+
          |
     +----|-------------------------------------------------+
     |  +-+-----------+                                     |
     |  | I/O处理     |              ACRN超级管理器         |
     |  +-------------+                                     |
     +------------------------------------------------------+

Annotation

Implementation Notes