六六哥的博客

Linux内核,虚拟化,云计算

QEMU-KVM中的多线程压缩迁移技术

QEMU-KVM中的多线程压缩迁移技术   1.     技术原理   目前的迁移技术,都是通过向QEMUFILE中直接写入裸内存数据来达到传送虚拟机都目的端,这种情况下,发送的数据量大,从而会导致更高的迁移时间(total time)和黑宕时间(downtime)。 本文介绍的方法,并不直接发送...

2016-04-29 14:40:01

阅读数 2867

评论数 1

进程所用内存(包括页表、vma、映射内存)的释放过程 (基于linux2.6.11.12)

又仔细走读了一下代码,是在exit_mmap中释放的页表所用的内存,被ULK带沟里去了,以为在mmdrop里面是否 流程如下 进程终止 -> do_exit -> exit_mm -> mmput  1. 释放进程映射的内存和vma所用内存 mmp...

2016-04-15 11:21:28

阅读数 1307

评论数 0

关于进程页表内核部分和内核主页表的关系(Linux 2.6.11)

用户态页表共享内核主页表的PUD表和PMD表,所以可以看到内核态访问进程页表的时候(内核地址部分),PMD和PUD都是直接使用 /* * 这里在为pgd分配从slab中页面的时候会调用pgd_ctor对页面进行初始化 * 其中就会把swapper_pg_dir(init进程的内核主页表的...

2016-04-14 15:18:34

阅读数 1396

评论数 0

关于QEMU中的类型算法

关于ctpopl ctpopl用来计算二进制数中有多少个1 #if ULONG_MAX == UINT32_MAX # define ctpopl ctpop32 /*计算二进制数中有多少个1*/ #elif ULONG_MAX == UINT64_MAX # define ct...

2016-04-13 20:11:07

阅读数 253

评论数 0

Linux内核中断/异常的注册(重要中断函数的查找方法,Linux 2.6.11)

Linux内核中断/异常的注册(重要中断函数的查找方法,Linux 2.6.11) 按照下面列出的方式,在trap_init()函数中,可以查找到重点的中断的处理函数有哪些 1. 缺页中断 start_kernel -> trap_init //注册各种中断和异常 -> set...

2016-04-13 11:02:26

阅读数 786

评论数 0

KVM虚拟机发送IPI的流程

参考:http://www.lxway.com/4405095264.htm Guest内核发送IPI,也就是向虚拟机APIC的寄存器中写入,对APIC的写动作会被截获,并退出到ROOT模式,对APIC的写动作调用 apic_reg_write() static const s...

2016-04-01 18:55:30

阅读数 1151

评论数 0

提示
确定要删除当前文章?
取消 删除