virtio1.2
新版本的virtio1.2规范已经发布了,在1.1版本发布后的三年里,已经积累了相当多的变化。下面列出其中的一些关键部分;关于细节,可以查看具体规范。
1. virtio1.2 中的新设备类型
增加了几种新的设备类型:
- virtio-pmem:持久内存设备;有助于避免来guest中的单独页面缓存
- virtio-fs:一个新的文件系统;一种从未正式标准化的 virtio-9p 文件系统的继承者
- virtio-rpmb:防篡改和防重放存储设备
- virtio-iommu:既可以作为物理 IOMMU 的代理,也可以充当虚拟 IOMMU
- virtio-snd:支持输入和输出 PCM 流的声卡
- virtio-mem:在guest物理地址空间中提供一个内存区域;对实现内存热插拔很有用
- virtio-i2c:一个虚拟 I2C 适配器
- virtio-scmi:实现 Arm 系统控制和管理接口,可用于传感器等外围设备
- virtio-gpio:一个虚拟 GPIO 设备
2. 现有设备类型的新功能
一些已经存在的设备类型被添加了增强功能:
- virtio-blk:
- 多队列支持
- 生命周期指标
- 安全擦除
- virtio-net:
- 支持guest提供准确的头文件长度
- 接收侧的缩放
- 每个包的hash报告
- 每个virtqueue驱动程序的通知
- UDP分段卸载
- virtio-gpu:
- 支持3D指令
- 资源共享
- blob资源
- 上下文初始化
- virtio-balloon:
- 空闲页提示
- 页释放后立即擦除
- 空闲页报告
- virtio-vsock:
- seqpacket 套接字
3. 不针对某一设备类型的功能
一些一般性的增强功能包括:
- 支持特定厂商的PCI特殊功能
- 支持设备之间的资源共享
- 支持重新初始化单个virtqueue