libvirt的xml,video的类型virtio
virtio_gpu:
显卡的提升在虚拟化场景下一直是一个难以解决的问题。目前qemu中提供的显卡有2种
一种是cirrus显卡,一种是vga显卡。这两种显卡都是通过qemu来进行模拟的,也仅仅达到了能够让虚拟机使用的功能。
而对于游戏需要的3D加速能力等,还不能很好的模拟。
显卡本身需要强大的计算能力,这里qemu纯用cpu来模拟gpu的功能明显有些力不从心。
新的功能virtio-gpu的出现给虚拟化的显卡功能带来了一些新的气息
同所有的virtio设备一样,virtio-gpu也是有这前端显卡和后端显卡组成。
virtio-gpu的前端显卡在kernel 4.2 进入主干,只具有2D功能。在4.4合入了3D功能。
所以要想体验这一功能需要使用kernel 4.4以后版本。
virtio-gpu相关代码主要在kernel的drivers/gpu/drm/virtio目录下。
这里简单就介绍下drm。详细的可以参看DRM介绍
DRM可以直接访问DRM clients的硬件。DRM驱动用来处理DMA,内存管理,资源锁以及安全硬件访问。
这样可以看到通过DRM来管理相关的内存信息,这样就可以通过virtio-gpu来将内存信息传递给后端。
接下来就是要看qemu中的后端实现。
virtio-gpu的支持在qemu 2.5中开始支持。
并准备在qemu2.6中对spice显卡进行支持。
作为一个典型的virtio设备,同样需要实现virtio的接口。在qemu的hw/display中包含了virtio-gpu后端的代码。
阅读(1643) | 评论(0) | 转发(0) |