【问题标题】:how virtio front-end drivers to share vring (or virtqueue) with qemu?virtio 前端驱动如何与qemu 共享vring(或virtqueue)?
【发布时间】:2013-12-11 01:25:48
【问题描述】:

我正在研究 virtio 如何与 qemu 和 kvm 一起工作。 我有两个问题。

到目前为止,我了解 virtio 前端驱动程序(在 guest 中)在 vring(virtqueue) 中写入 IO 请求并启动 qemu。 然后通知 qemu,翻译 vring 中的请求并调用诸如 open、write、read、close 等系统调用。

第一季度。 virtio前端驱动和qemu如何共享vring?我从http://www.slideshare.net/zenixls2/052-virtio-introduction-17191942 得到了一些使用内存映射的信息。但是,我在源代码中找不到它。请告诉我它在源代码中的位置。

第二季度。如何踢qem? 我不明白前端驱动程序是如何踢 qemu 的? 我认为 qemu 的记忆听众会收到并处理踢球。 但我在源代码中找不到它。

【问题讨论】:

    标签: io virtualization qemu kvm


    【解决方案1】:

    前端驱动程序通过写入 I/O 端口(在 PCI virtio 设备的 I/O BAR 中;您可以使用 lspci 找到地址)来启动 QEMU。

    为了在 guest 和 virtio 设备之间共享内存,QEMU 使用 address_space_map 和 address_space_unmap(或者 cpu_physical_memory_map 和 cpu_physical_memory_unmap 取决于 QEMU 版本)进行“DMA”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 2022-01-19
      相关资源
      最近更新 更多