qemu sriov

GitHub - knuto/qemu: See the Wiki page below for details about the SR/IOV patch set

qemu模拟PCIe SRIOV设备 - 知乎

**注:SR/IOV补丁集现在是v.7.1.0中QEMU的一个组成部分**

See git://git.qemu.org/qemu.git for the official master project.

SR/IOV仿真修补程序(现在是上游)
作者已经实现了一组补丁程序来模拟虚拟机中的SR/IOV。这个补丁集应该是完全功能的,但在QEMU中缺少一个完全实现的示例设备。很明显,作者已经在他的设备模型上测试并广泛使用了它,该模型的格式不适合QEMU(目前),其他人也知道已经使用了补丁集并使用了它。
sriov_patches_v14分支中提供了此修补程序集的最新版本。

使用示例
感谢Łukasz Gieryk的工作lukasz.gieryk@linux.intel.com现在有一个使用上游QEMU中的SR/IOV补丁的NVME Express设备的工作示例。你可以得到一个简单的,最多3个VFS在你的虚拟机中使用,使用以下参数:

   qemu-kvm -M q35 \
         ...
         -device nvme-subsys,id=subsys0 \
         -device nvme,id=nvme0,bus=pcie.0,addr=4.0,serial=deadbead,subsys=subsys0,sriov_max_vfs=3,sriov_vq_flexible=6,sriov_vi_flexible=3

除了实际的SR/IOV仿真支持补丁之外,作者早期还编写了一些非常不完整的示例代码,以说明如何使用这些补丁。这个示例代码“模拟”了一个基于QEMU中e1000e实现的igb以太网设备。此代码是sriov_patches_v14中的最终提交

在v6中,这些修补程序在一定程度上可以演示修补程序集,但这还不算是一个有效的设备。

使用igb设备尝试SR/IOV代码
在任何带有igb驱动程序的Linux内核上,igb驱动将检测仿真设备并尽可能启用中断,因为实现只是部分的,所以这是不起作用的。
作者一直在使用通用的Qemu根端口来测试设备,例如,从以下内容开始

  qemu-kvm -M q35 \
      ...
      -device pcie-root-port,slot=2,id=pcie_port.2 \
      -device igb,bus=pcie_port.2

后面还有一些igb的例子;

1.lspci可以看到pf设备

2.使能sriov

rmmod igb modprobe igb max_vfs=2

3.lspci可以看到多了两个vf设备

 03:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
 03:10.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)

4.echo 7 > /sys/bus/pci/devices/0000:03:00.0/sriov_numvfs

通过这个命令,也可生成7个vf设备

5.关闭vf

 echo 0 > /sys/bus/pci/devices/0000\:03\:00.0/sriov_numvfs
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值