Mdev 与厂商迁移驱动

Mdev 与厂商迁移驱动

1. Mediated device

Mdev让 parent driver把物理设备切成软件管理实例:

1
2
3
4
5
6
physical parent
-> supported_type
-> create UUID instance
-> mdev device
-> vfio mdev driver
-> userspace/QEMU

隔离由 parent driver实现,不是 IOMMU自动完成。

2. Sysfs

Parent注册 supported types,用户向 create写 UUID;实例目录可 remove。Available instances和类型属性由 parent提供。

3. Mdev bus

mdev_core.c管理 parent/type/device生命周期;mdev_driver.c管理 mdev driver匹配和 probe/remove。

4. VFIO

具体 parent/mdev driver提供 region、IRQ、DMA、reset和 migration行为。只有注册一个 mdev对象并不自动生成完整设备模型。

5. 厂商 VFIO PCI

本树:

  • mlx5 VFIO PCI;
  • HiSilicon accelerator VFIO PCI。

它们基于 vfio-pci core增加 migration、state transfer和 dirty tracking,绑定范围由 PCI ID和硬件能力限定。

6. Migration

Vendor driver负责:

  • freeze/quiesce;
    -保存 device state;
    -导出 migration data;
    -恢复;
    -版本/firmware兼容;
    -dirty DMA报告。

7. 安全

Parent必须保证各实例:

-DMA隔离;
-MMIO/register过滤;
-IRQ隔离;
-资源配额;
-reset互不影响;
-迁移数据验证。

实现缺陷可跨 VM泄露。

8. RK3588

主树中未发现为 Rockchip NPU/VPU/GPU/ISP实现的 mdev parent。CONFIG_VFIO_MDEV即使开启也不会自动产生可用 mediated device。

9. GPU概念

Mdev不等于 SR-IOV;SR-IOV由硬件 PF创建 VF。也不应把任何 GPU切分能力泛称“GPU SR-IOV类”,具体隔离机制必须按 driver确认。

文章互动

阅读 --

留言

0 条留言

正在加载留言…