gpt4 book ai didi

linux-device-driver - QEMU 中关于 virtio-net-pci 和 virtio-net 的混淆

转载 作者:行者123 更新时间:2023-12-04 12:16:03 27 4
gpt4 key购买 nike

我对 QEMU 源代码中存在的两个模拟设备 hw/net/virtio-net.c 和 hw/virtio/virtio-net-pci.c 感到有些困惑。
看起来 virio-net-pci.c 是基于 virtio 规范的 NIC 仿真,但我不知道 hw/net/virtio-net.c 用于什么?
除此之外,我看到 hw/net/vhost_net.c 但不明白在什么情况下使用了它?

最佳答案

从概念上讲,QEMU 实现中的 virtio 设备分为两部分:“传输”和“后端”。 “后端”是执行实际工作的部分(网络、块设备、随机数生成器等); “传输”是作为 guest 接口(interface)的部分(PCI、MMIO、s390 CCW...)。这使我们能够以多种不同的方式提供 virtio 设备,而无需重复代码。
hw/net/virtio-net.c 实现了“net”后端。 hw/virtio/virtio-pci.c 实现了 PCI 传输。 hw/virtio/virtio-net-pci.c 实现了一个 PCI 设备,它为 virtio 网络后端设备提供 PCI 传输(并且是一个相当小的文件,因为它只是将公共(public)传输和公共(public)后端代码粘合在一起)。
毫不奇怪,hw/net/vhost_net.c 是 the RedHat blog post that KagurazakaKotori gave you a link to 中描述的 vhost-net 支持的实现。 .您可以将 virtio 网络设备传递给 guest ,而无需使用 vhost-net —— 您可以使用任何 QEMU 网络后端。

关于linux-device-driver - QEMU 中关于 virtio-net-pci 和 virtio-net 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65550766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com