KVM下steal_time源代码分析

KVM下steal_time源代码分析 代码版本:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git branch v4.3 刚好有人在其他文章评论下问到steal_time机制,顺便看了一下,总结如下。 steal_time原意是指在虚拟化环境下,hypervisor窃取的vm中的时间,严格讲就是VCPU没有运行的时间。 在guest中执...

Linux下wine字体配置

另外一种乱码的可能是本地是英文环境而wine需要的是中文环境,需要下面的命令 echo "alias wine='LANG=zh_CN.UTF-8 wine'" >> ~/.bashrc 在crossover下,需要在bottle下面的cxbottle.conf文件中[EnvironmentVariables]后面添加 “LANG” = “zh_CN.UTF-8”. 有些需要特殊字体,建议将msfontscore都安装上。 Wine也...

面试记

前段时间校招的如火如荼,TL搞到了几个候选人,赶鸭子上架让我参与面试。 因为都是一对一的进行交流,怕标准低了平白浪费时间,用力过猛又招不到人,先和TL交流了他心中的标准,于是给自己定下基调,“知识面求广不求深,寻求个别亮点”。 1.第一位应聘者是硕士毕业,基本上就是聊天的节奏,自己作为面试官,整个方向没...

Linux桌面环境配置技巧

17.openjdk或者jdk中的字体锯齿处理,适用于phpstorm和pycharm 在.bashrc中添加 export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dsun.java2d.xrender=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel' 16.Centos 安装网易云音乐linux客户端RPM版本 centos 7 安装网易云音乐 15.wine...

seabios缺陷导致特定VCPU个数的qemu找不到硬盘

seabios问题的原理还是很简单的,只是我对bios的原理一点也不了解,可谓盲人骑瞎马,夜半看bug,过程记录一下,还是有些意义。 问题就是给定qemu分配78个vcpu的时候,qemu提示找不到硬盘,即是"Boot failed: could not read the boot disk",出现了这样的问题,正确的思路就是看打印,就是seabios的boot_disk里面的: ...

Xen migration源代码分析

最近要定位Xen migration后nested中xl创建vm panic的问题,于是把migration的过程看一看,记录如下,使用的迁移命令是“xl migrate centos localhost”,下面的代码走读也是以这个命令为标准。 直接从xl命令看,它在toolslibxlxl.c的main函数中,xl受到操作参数之后通过cmdtable_lookup函数进行查表,就是cmd_table,找到...

KVM进入vmx模式产生general protection fault

在SIMICS软件里面模拟最新的CPU进行虚拟化测试的时候,先把Dave的kernel patches拿到手,打补丁到v4.1-rc2上,每次启动qemu-kvm的时候,console上就打印了一堆信息,然后panic了,信息简略如下: [ 26.998321] general protection fault: 0000 [#1] SMP [ 27.000140] [<ffffffffa0517f6b>] hardware_enable+...

KVM和XEN内存权限检查机制

在非虚拟化环境上,Linux的内存寻址就不多说了,不了解的参考Linux内存寻址,只提一下相关的权限检查,在分页机制上进行多级寻址,每次获取下一级地址都需要访问页表项的值进行计算,在读取之前,kernel会将页表项里面的权限值和当前访问线程的属性进行比较,如果不满足权限,则进行page_fault。基本页表项内容如下: ...

KVM源代码分析4:内存虚拟化

终于把KVM源代码分析3:CPU虚拟化写完了,虽然还有run的部分另外在写,还是先看一下内存虚拟化部分。 代码版本:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git v3.16.37 在虚拟机的创建与运行中pc_init_pci负责在qemu中初始化虚拟机,内存初始化也是在这里完成的,还是一步步从qemu说起,...

ubuntu下载debuginfo deb进行调试

工作环境正式切换到ubuntu下,之前使用SLES进行开发和服务器版本,如此可以直接下载debuginfo的rpm(比如glibc debuginfo)进行调试,suse都是有对应链接提供好的,但当前切换的ubuntu下就找不到哪里有debug版本的deb下载,网上各种介绍手工编译,一个包还好,多个包就太麻烦了,正要感慨ubuntu不适合进行服务器开发,却...