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. mysql 保留的关键字

    mysql> select precision from Product; ERROR 1064 (42000): You have an error in your SQL syntax; c ...

  2. UESTC_树上战争 CDOJ 32

    给一棵树,如果树上的某个节点被某个人占据,则它的所有儿子都被占据,lxh和pfz初始时分别站在两个节点上,谁当前所在的点被另一个人占据,他就输了比赛,问谁能获胜. Input 输入包含多组数据 每组第 ...

  3. Java获取客户端真实IP地址的两种方法

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  4. javax inect

    Spring 3 and JSR-330 @Inject and @Named example By mkyong | September 16, 2012 | Viewed : 86,399 tim ...

  5. asp.net中Repeart选中整行操作

    <asp:Repeater runat="server" ID="rpt_Student"> <HeaderTemplate> < ...

  6. Javascript进阶篇——(函数)笔记整理

    这节是根据慕课网和JavaScript DOM编程艺术一书加起来做的笔记 什么是函数如果需要多次使用同一段代码,可以把它们封装成一个函数.函数(function)就是一组允许在你的代码里随时调用的语句 ...

  7. node.js实践第二天

    使用Express框架搭建一个网站 1.安装Express 首先要用全局模式安装Express,因为只有这样才能在命令行中使用它.使用下述命令在伪dos命令窗口安装express. $ npm ins ...

  8. (zz)Lambda 表达式(C# 编程指南)

    https://msdn.microsoft.com/zh-cn/library/bb397687.aspx Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数.通过使用 lambd ...

  9. window.showDialog()兼容性处理

    ModalDialog 是什么? showModalDialog 是js window对象的一个方法, 和window.open一样都是打开一个新的页面. 区别是: showModalDialog打开 ...

  10. E - The King

    Description Once upon a time in a country far away lived a king and he had a big kingdom. He was a v ...