REF:

http://los-vmm.sc.intel.com/wiki/How-to-setup-kvmgt
http://xenvgt.sh.intel.com/image/bdw-h/

Host display backgroud

$ grep i915.enable_vgtbuffer=1 /boot/grub/grub.cfg
linux /boot/vmlinuz-4.3.0-rc6-vgt+ root=UUID=d686a051-44ac-4e28-ba33-c715d9944852 ro intel_iommu=igfx_off i915.hvm_boot_foreground=0 i915.enable_vgtbuffer=1

$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.3.0-rc6-vgt+ root=UUID=d686a051-44ac-4e28-ba33-c715d9944852 ro intel_iommu=igfx_off i915.hvm_boot_foreground=0 i915.enable_vgtbuffer=1

# echo 0 > /sys/kernel/vgt/control/foreground_vm

The main qemu code:

qemu-igvtg/hw/display/vgt_vga.c

kernal code:

drivers/gpu/drm/i915/i915_gem_vgtbuffer.c

qemu can use flink or dambuffer to get framebuffer.

some related tools

$ glxinfo

$ echo $DISPLAY
:0
$ glxinfo
name of display: :0
libGL error: pci id for fd 4: 8086:1926, driver (null)
i965_dri.so does not support the 0x1926 PCI ID.

$ apt-get install glmark2

$ glmark2

$ cat /etc/X11/xinit/xserverrc
#!/bin/sh

exec /usr/bin/X "$@"

After an upgrade to 12.04, I had the same issue. This time, the culprit is the lightdm that the system uses. The file that needs to be updated is /etc/lightdm/lightdm.conf and the required addition is a xserver-allow-tcp=true in the [SeatDefaults] section.

$ cat  /etc/lightdm/lightdm.conf

[Seat:*]
autologin-guest=false
autologin-user=ubuntu
autologin-user-timeout=0
autologin-session=lightdm-autologin
xserver-allow-tcp=true
xserver-command=X -listen tcp

重新启动lightdm或者重启机器

重启后,需要执行以下命令:

$ xhost +

将这个代码加入到sshd机器的~/.bashrc

TTY=`tty`
TTY=${TTY#/dev/}
echo "current tty is: $TTY"
REMOTE=`who |grep "$TTY "`
REMOTE=${REMOTE##*\(}
REMOTE=${REMOTE%)}
echo "The login user is from: $REMOTE"

echo "The org DISPLAY=$DISPLAY"
if [[ "${DISPLAY%:*}" == "localhost" ]]; then

echo "Guess you are using X11-forwarding, do not change DISPLAY."

elif [ -n "${REMOTE%:0}" ] && [ -z "${DISPLAY%:*}" ]; then

echo "reset DISPLAY=$REMOTE:0.0"
echo "if you are use mobaxterm, you may need to set:"
echo "$ export DISPLAY=$REMOTE:n.0"
echo "if you are using X11-forwarding, please run:"
echo "$ export DISPLAY=localhost:10.0"
export DISPLAY=$REMOTE:0.0

fi

查看GPU的资源使用率。

$ sudo ipython -c '
res = [0] * 6
with open("/sys/kernel/vgt/control/available_resource") as f:
res = map(lambda x: int(x, base=0), f.readline().split(","))
print dict(
zip(["total_low_mem", "available_low_mem", "total_high_mem",
"available_high_mem", "total_fence", "available_fence"], res))
'

kvm-GT的更多相关文章

  1. [原] KVM 虚拟化原理探究(1)— overview

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  2. 基于本地存储的kvm虚拟机在线迁移

    基于本地存储的kvm虚拟机在线迁移 kvm虚拟机迁移分为4种(1)热迁移基于共享存储(2)热迁移基于本地存储(3)冷迁移基于共享存储(4)冷迁移基于本地存储 这里介绍的是基于本地存储的热迁移 动态块迁 ...

  3. [原] KVM 虚拟化原理探究 —— 目录

    KVM 虚拟化原理探究 -- 目录 标签(空格分隔): KVM KVM 虚拟化原理探究(1)- overview KVM 虚拟化原理探究(2)- QEMU启动过程 KVM 虚拟化原理探究(3)- CP ...

  4. [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化

    KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...

  5. [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化

    KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...

  6. [原] KVM 虚拟化原理探究(4)— 内存虚拟化

    KVM 虚拟化原理探究(4)- 内存虚拟化 标签(空格分隔): KVM 内存虚拟化简介 前一章介绍了CPU虚拟化的内容,这一章介绍一下KVM的内存虚拟化原理.可以说内存是除了CPU外最重要的组件,Gu ...

  7. [原] KVM 虚拟化原理探究(3)— CPU 虚拟化

    KVM 虚拟化原理探究(3)- CPU 虚拟化 标签(空格分隔): KVM [TOC] CPU 虚拟化简介 上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要 ...

  8. [原] KVM 虚拟化原理探究(2)— QEMU启动过程

    KVM 虚拟化原理探究- QEMU启动过程 标签(空格分隔): KVM [TOC] 虚拟机启动过程 第一步,获取到kvm句柄 kvmfd = open("/dev/kvm", O_ ...

  9. [原] KVM虚拟机网络闪断分析

    背景 公司云平台的机器时常会发生网络闪断,通常在10s-100s之间. 异常情况 VM出现问题时,表现出来的情况是外部监控系统无法访问,猜测可能是由于系统假死,OVS链路问题等等.但是在出现网络问题的 ...

  10. [原] KVM 环境下MySQL性能对比

    KVM 环境下MySQL性能对比 标签(空格分隔): Cloud2.0 [TOC] 测试目的 对比MySQL在物理机和KVM环境下性能情况 压测标准 压测遵循单一变量原则,所有的对比都是只改变一个变量 ...

随机推荐

  1. SmartBusinessDevFramework架构设计-3:考虑开源?

    掖着藏着,终归不是好的办法.说的跟花一样,究竟里子是什么东西.一个好的被子,里料是羽绒还是棉花还是丝绵还是黑心棉?有时候,真的是看过之后,才能体验其中的奥秘. 这个架构的设计初衷,总体是为了方便.ne ...

  2. Android APP开发需求文档范本

    Android  APP开发需求文档范本 软件需求文档格式的标准写法 1.引言 1.1 编写目的 • 阐明开发本软件的目的: 1.2 项目背景 • 标识待开发软件产品的名称.代码: • 列出本项目的任 ...

  3. css案例学习之div a实现立体菜单

    效果 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  4. 分治法求一个N个元素数组的逆序数

    背景  逆序数:也就是说,对于n个不同的元素,先规定各元素之间有一个标准次序(例如n个 不同的自然数,可规定从小到大为标准次序),于是在这n个元素的任一排列中,当某两个元素的先后次序与标准次序不同时, ...

  5. U-Boot 启动过程和源码分析(第二阶段)-main_loop分析

    1> main_loop  common/main.c /******************************************************************** ...

  6. Linux 多线程开发

    在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死.在被其他线程回收之前,它的存储器资源(例如栈)是不释放的.相反, ...

  7. 让你的javascript函数拥有记忆功能,降低全局变量的使用

    考虑例如以下场景:假如我们须要在界面上画一个圆,初始的时候界面是空白的.当鼠标移动的时候,圆须要尾随鼠标移动.鼠标的当前位置就是圆心.我们的实现方案是:假设界面上还没有画圆,那么就新创建一个:假设已经 ...

  8. ubuntu下安装xlrd模块,Mysqldb模块

    Python中安装xlrd模块 1.从 https://pypi.python.org/pypi/xlrd  下载压缩包 2.解压所下载的压缩包 3.CD到解压文件夹,运行 sudo python s ...

  9. 如何把UIView转成UIImage,解决模糊失真问题

    最近工作中,遇到一个需求,需要把一个UIView对象转成UIImage对象显示.经过网络搜索,找到如下答案: ? 1 2 3 4 5 6 7 8 -(UIImage*)convertViewToIma ...

  10. 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&&如果可行必定最优&&非证明最优性)的题)(K)

    例题4  墓地雕塑(Graveyard, NEERC 2006, LA 3708) 在一个周长为10000的圆上等距分布着n个雕塑.现在又有m个新雕塑加入(位置可以随意放),希望所有n+m个雕塑在圆周 ...