Re: [PATCH v3 7/8] docs/zh_CN: add virt acrn io-request translation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Aug 1, 2021 at 9:32 PM Yanteng Si <siyanteng@xxxxxxxxxxx> wrote:
>
> Translate Documentation/virt/acrn/io-request.rst into Chinese.
>
> Signed-off-by: Yanteng Si <siyanteng@xxxxxxxxxxx>
Reviewed-by: Alex Shi <alexs@xxxxxxxxxx>

> ---
>  .../translations/zh_CN/virt/acrn/index.rst    |  3 +-
>  .../zh_CN/virt/acrn/io-request.rst            | 99 +++++++++++++++++++
>  2 files changed, 101 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/translations/zh_CN/virt/acrn/io-request.rst
>
> diff --git a/Documentation/translations/zh_CN/virt/acrn/index.rst b/Documentation/translations/zh_CN/virt/acrn/index.rst
> index b8f502033455..b53976e20a34 100644
> --- a/Documentation/translations/zh_CN/virt/acrn/index.rst
> +++ b/Documentation/translations/zh_CN/virt/acrn/index.rst
> @@ -21,9 +21,10 @@ ACRN超级管理器
>     :maxdepth: 1
>
>     introduction
> +   io-request
>
>  TODOLIST:
>
>
> -   io-request
> +
>     cpuid
> diff --git a/Documentation/translations/zh_CN/virt/acrn/io-request.rst b/Documentation/translations/zh_CN/virt/acrn/io-request.rst
> new file mode 100644
> index 000000000000..1a25ea15ae07
> --- /dev/null
> +++ b/Documentation/translations/zh_CN/virt/acrn/io-request.rst
> @@ -0,0 +1,99 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +.. include:: ../../disclaimer-zh_CN.rst
> +
> +:Original: Documentation/virt/acrn/io-request.rst
> +
> +:翻译:
> +
> + 司延腾 Yanteng Si <siyanteng@xxxxxxxxxxx>
> +
> +:校译:
> +
> + 时奎亮 Alex Shi <alexs@xxxxxxxxxx>
> +
> +.. _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超级管理器         |
> +     |  +-------------+                                     |
> +     +------------------------------------------------------+
> +
> +3. I/O请求状态转换
> +------------------
> +
> +一个ACRN I/O请求的状态转换如下。
> +
> +::
> +
> +   FREE -> PENDING -> PROCESSING -> COMPLETE -> FREE -> ...
> +
> +- FREE: 这个I/O请求槽是空的
> +- PENDING: 在这个槽位上有一个有效的I/O请求正在等待
> +- PROCESSING: 正在处理I/O请求
> +- COMPLETE: 该I/O请求已被处理
> +
> +处于COMPLETE或FREE状态的I/O请求是由超级管理器拥有的。HSM和ACRN用户空间负责处理其
> +他的。
> +
> +4. I/O请求的处理流程
> +--------------------
> +
> +a. 当客户虚拟机中发生被陷入的I/O访问时,超级管理器的I/O处理程序将把I/O请求填充为
> +   PENDING状态。
> +b. 超级管理器向服务虚拟机发出一个向上调用,这是一个通知中断。
> +c. upcall处理程序会安排一个工作者来调度I/O请求。
> +d. 工作者寻找PENDING I/O请求,根据I/O访问的地址将其分配给不同的注册客户,将其
> +   状态更新为PROCESSING,并通知相应的客户进行处理。
> +e. 被通知的客户端处理指定的I/O请求。
> +f. HSM将I/O请求状态更新为COMPLETE,并通过hypercalls通知超级管理器完成。
> --
> 2.27.0
>




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux