kvm
文章平均质量分 62
jemmy858585
这个作者很懒,什么都没留下…
展开
-
EPT学习总结及KVM的处理
EPT为了提升虚拟化内存映射的效率而提供的一项技术。打开EPT后,GuestOS运行时,通过页表转化出来的地址不再是真实的物理地址,而是被称作为guest-physical addresses,经过EPT的转化后才成为真实的物理地址。如果CR0.PG=0,GuestOS分页机制没有打开,直接使用线性地址作为guest-physical addresses,如果CR0.PG=1,使用分页机制转化后的地址作为guest-physical addresses。EPT的表和页表基本类似,具体可以参见Intel的编程原创 2010-09-12 11:16:00 · 2784 阅读 · 0 评论 -
do_vmx_vcpu_run函数分析
开启VMX的代码VMexitVMEntry进入的时候,VMCS保存了那些寄存器;保存那些在HostOS State,退出的时候,从HostOS State中恢复,原创 2010-10-31 13:53:00 · 1773 阅读 · 0 评论 -
kvm开发环境搭建
1.sudo apt-get install git-gui2.apt-get -d install vim3.sudo apt-get install ctags4.git clone git://git/kernel.org/pub/scm/virt/kvm/qemu-kvm原创 2010-11-07 01:15:00 · 1568 阅读 · 1 评论 -
如何编译qemu-kvm
<br />1.执行./configure<br /> <br />如果遇到如下错误,需要安装zlib<br /><br />Error: zlib check failed<br />Make sure to have the zlib libs and headers installed.<br /><br />执行<br />sudo apt-get install zlib1g-dev<br /> <br />如果遇到如下错误,需要安装pciutils-dev<br />Error: l原创 2013-12-19 15:23:53 · 3447 阅读 · 0 评论 -
qemu启动参数代码分析
/usr/libexec/qemu-kvm -name rhel6.5 -S-M pc-0.15 -enable-kvm -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 8f338d83-41c1-9df6-d42f-851f13949359原创 2013-12-19 20:14:47 · 7250 阅读 · 0 评论 -
qemu启动流程
1.主线程代码分析主线程主要是监控各种需要处理的请求的句柄,然后等相关事件触发后,进行相关的处理。下面是典型的主线程的调用栈,通过ppoll来监控事件。(gdb) bt#0 0x00007ffff618dd51 in ppoll () from /lib64/libc.so.6#1 0x000055555580fdbc in ppoll (__ss=0x原创 2015-06-17 21:16:55 · 4574 阅读 · 0 评论 -
Intel VMCS学习总结
VMX分为root模式和non root模式,VMCS通过VMPTRST,VMPTRLD修改。VMREAD,VMWRITE修改VMCS内容。VMXON,VMXOFF打开关闭VMX。VMLAUNCH,VMRESUMEVMCS状态的状态管理?VMPTRLD,转化为active,currentactive,currentVMCS的几个区原创 2015-06-20 16:59:25 · 4219 阅读 · 0 评论 -
Emulate MSR_EBC_FREQUENCY_ID patch
<br />为GuestOS模拟MSR寄存器的读取。<br />主要模拟了MSR_EBC_FREQUENCY_ID寄存器。<br /> <br />看了一下Intel的寄存器,这个主要是上报Core Clock Frequency 和 System Bus Frequency ,具体可以参考Intel编程手册。<br /> /*<br /> * MSR_EBC_FREQUENCY_ID<br /> * Conservative value valid for even the basic CPU原创 2010-09-11 21:28:00 · 667 阅读 · 0 评论 -
Return correct values in nested_svm_exit_handled_msr
<br />修改nested_svm_exit_handled_msr函数返回值为int,之前的代码错误的返回了bool。<br />原创 2010-09-12 21:49:00 · 651 阅读 · 0 评论 -
kvm对外部中断的处理
<br />Acknowledge interrupt on exit. The “acknowledge interrupt on exit” VM-exit<br />control in the controlling VMCS controls processor behavior for external interrupt<br />acknowledgement. If the control is 1, the processor acknowledges the interrupt<br原创 2010-08-31 23:58:00 · 1670 阅读 · 1 评论 -
kvm.mmu_audit参数分析
<br />在kvm的参数中增加了如下参数,看看这个是什么功能<br /> <br /> kvm.mmu_audit= [KVM] This is a R/W parameter which allows audit<br /> KVM MMU at runtime.<br /> Default is 0 (off)<br /> <br /> <br />分析对应打开操作:<br />ret = register_trace_kvm_mmu_audit(kvm_mmu_audit, NULL);<b原创 2010-09-23 20:39:00 · 844 阅读 · 0 评论 -
for_each_shadow_entry宏分析
<br />for_each_shadow_entr三个参数的含义<br />_vcpu:对应kvm_vcpu结构体的指针。<br />_addr:如果是ETP的话,是GuestOS的物理地址<br />_walker:游标<br /> <br /> <br />#define for_each_shadow_entry(_vcpu, _addr, _walker) /<br /> for (shadow_walk_init(&(_walker), _vcpu, _addr); /<br />原创 2010-09-23 19:19:00 · 1234 阅读 · 0 评论 -
KVM: Fix reboot on Intel hosts补丁分析
kvm模块在初始化的时候,注册了reboot回调:register_reboot_notifier(&kvm_reboot_notifier);在系统reboot的时候,执行如下操作:static int kvm_reboot(struct notifier_block *notifier, unsigned long val, void *v){ /* * Some (well, at least mine) BIOSes hang on reboot if * in vmx root原创 2010-10-24 21:36:00 · 1644 阅读 · 0 评论 -
__direct_map函数分析
<br />static int __direct_map(struct kvm_vcpu *vcpu, gpa_t v, int write,<br /> int level, gfn_t gfn, pfn_t pfn)<br />/*<br />vcpu:对应vcpu的kvm_vcpu结构指针。<br />v:对应guestos物理地址在页帧的偏移量。<br />write:<br />level:设定页表的级别<br />gfn:guest os 的页帧号<br />pfn : host os 的原创 2010-10-27 00:13:00 · 1579 阅读 · 0 评论