Linux内核中的KVM代码

[2013.06.02 update] 参考我写的这个文档:https://github.com/smilejay/kvm-book/blob/master/misc/kvm-code-in-linux.txt

今天简单查了Linux内核中有哪些KVM相关的代码(Linux 3.8.0-RC5版本),统计了一下KVM内核的代码量。目前在,Linux 3.8.0中有大约6万多行关于KVM代码。
内核中的KVM代码主要包括如下几个部分:
1. 硬件架构无关的KVM框架的核心代码,位于 virt/kvm/ 目录中,约有 6827 行代码。(其中,kvm_main.c 中的kvm_init函数是KVM初始化入口。)
2. 与硬件架构相关的代码,以最成熟的x86为例,位于 arch/x86/kvm/ 目录中,约有 35673 行代码。
另外,其他几个架构也有KVM相关代码,分别位于:arch/ia64/kvm 、arch/powerpc/kvm 、arch/s390/kvm 、arch/tile/kvm 等目录中。
3. KVM相关的头文件,分别位于 include/linux/ 和 include/asm-generic/ 目录中,分别有大约 1104 行 和 21 行代码。

如下命令行显示了前面介绍的KVM相关的内核代码的文件:

master@jay-linux:~/kvm.git/virt/kvm$ ls 
assigned-dev.c  async_pf.c  async_pf.h  coalesced_mmio.c  coalesced_mmio.h  
eventfd.c  ioapic.c  ioapic.h  iodev.h  iommu.c  irq_comm.c  Kconfig  kvm_main.c

master@jay-linux:~/kvm.git/arch/x86/kvm$ ls
cpuid.c  emulate.c  i8254.h  irq.c  Kconfig  lapic.c  Makefile     mmu.c  mmutrace.h
pmu.c  trace.h  vmx.c  x86.h   cpuid.h  i8254.c    i8259.c  irq.h  kvm_cache_regs.h
lapic.h mmu_audit.c  mmu.h  paging_tmpl.h  svm.c  tss.h    x86.c

master@jay-linux:~/kvm.git/include/linux$ ls *kvm*
kvm_host.h  kvm_para.h  kvm_types.h

master@jay-linux:~/kvm.git/include/asm-generic$ ls *kvm*
kvm_para.h

KVM在Linux内核中,总的代码行数为:43625=35673+6827+1104+21 (这里没有统计除x86架构外的架构相关kvm代码)。

master

Stay hungry, stay foolish.

One Comment

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

*