KVMGT in Linux 4.10 – 流媒体服务器、游戏、车载大屏等场景的应用技术预研

UPDATE: 2018-04,现在KVMGT相关upstream基本已全部进入master,可以参考GVTg_Setup_Guide或者GVTd_Setup_Guide,如果需要本地显示参考DMA_BUF User Guide

UPDATE: 2017-08-08,Intel有了X系列处理器i9,这个核数肯定适合跑桌面了。

UPDATE:鉴于KVMGT的产品化集成难度较之前有所降低,所以最近有很多人都打算搞搞集成,那我先来集成一把吧。

果不其然,直接并进内核了(书要改吗。。当然不,本文简单增补即可。。)

4.10非常具有的代表性即是添加了Mediated Device(vfio-mdev),Intel有自家方案,nVidia也要支持,但Linux社区说你俩给个统一框架吧,要不太乱,于是就有了它。如此以来,N家的显卡便可以很快开发出对应的驱动(不要相信他们家销售说的话,14年偶尔问了一下说要支持的,都过去80年啦),可以看看N家去年(2016.9)放的PPT,02×03-Neo_Jia_and_Kirti_Wankhede-vGPU_on_KVM-A_VFIO_based_Framework

相较于之前的文章intel-igvt-g-vgpu-in-kvm-kvmgt-howto,这次的并入减少了我们的不少工作。

4.10 ChangeLog:https://kernelnewbies.org/Linux_4.10

参考https://github.com/01org/gvt-linux/wiki/GVTg_Setup_Guide

另外,RHEL 7.4也已加入了KVMGT/XenGT,可以试用一下。

来看看支持哪些CPU吧:

As a long-standing member of the open source community, Intel works upstream to ensure that full, open source implementations of Intel® GVT exist for open source virtualization hypervisors, KVM* and Xen*, known respectively as KVMGT and XenGT. KVMGT and XenGT deliver excellent virtual GPU performance in VMs across 5th and 6th generation Intel® Core™ processors (Intel® Core™ i3, Intel® Core™ i5, and Intel® Core™ i7 processors) with Intel Processor Graphics as well as Intel® Xeon® processors E3 v4 family with Intel Processor Graphics.

首先安装并编译4.10的内核:

搜索关键字kvmgt, mdev,vfio-iommu-type1,并将其标记为“M”。 模块标记完成后,进行编译安装。

从elrepo安装的缺少模块和编译环境。

然后修改grub文件:

为什么添加ignore_msrs呢?

Since some windows guest 3rd patry application / tools (like GPU-Z / Passmark9.0) will trigger MSR read / write directly, if it access the unhandled msr register, guest will trigger BSOD soon. So we added the “kvm.ignore_msrs=1” into grub for workaround.

然后继续编译QEMU,这次只要下载upstream的即可。

《KVMGT in Linux 4.10 – 流媒体服务器、游戏、车载大屏等场景的应用技术预研》有30条留言

  1. 你好!我也在ubuntu17.04下也尝试KVMGT,采用的gvt-linux-gvt-stable-4.10,Igvtg-qemu-stable-2.9.0;一直无法成功,用的是Intel i7处理器;一直无法在VM中看到Host的GPU设备;我是按照GVTg_Setup_Guide的流程做的,在编译内核之前,把gvt-linux-gvt-stable-4.10目录下的.config文件中的关于I915和mdev以及VFIO相关的选项都置为Y;编译并且安装内核后,一致无法在/sys/bus/pci/0000:00:02:0/的目录下生产mdev_support_xx的路径,请问哪里是否还有问题?

  2. 我这个测试成功了 但是使用spicy连接的效果 不好 鼠标会飘动, 请问楼主是用的什么远程协议去连接的呢

  3. virsh define vm0.xml 遇到如下问题
    error: Failed to define domain from vm0.xml
    error: unsupported configuration: unknown host device source address type ‘mdev’

    附xml片段

留下评论