Wiki内検索
最近更新したページ
管理人's Profile
オープン系の仮想化に興味をもつ2流技術者です。Linux 2.6.20に採用されたカーネルベースの仮想マシンドライバkvmについての情報をまとめるWikiを立ち上げました。
最新コメント
XenNews by check it out
Ubuntuでkvm! by check it out
PV Driver仕様概要 by stunning seo guys
PV Driver仕様概要 by awesome things!
FrontPage by awesome things!
ファイル雛形 by stunning seo guys
タグ
フリーエリア

linux-2.6.20/drivers/kvm/kvm_main.c_4

□デバイスの制御

□kvm_dev_ioctl [kvm_main.c](2247)
(引数)
struct file *filp:ファイルポインタ
unsigned int ioctl:制御コード
unsigned long arg:

 case KVM_CREATE_VM:
  ・kvm_dev_ioctl_create_vm関数を呼んで、仮想マシンを生成する

├kvm_dev_ioctl_create_vm [kvm_main.c](2203)
│├kvmfs_inode [kvm_main.c](102)
││├new_inode
││└ERR_PTR

  ・inodeを作成して、次に示す仮想マシンに対するディスパッチルーチンを登録する

static struct file_operations kvm_vm_fops = {
 .release = kvm_vm_release,
 .unlocked_ioctl = kvm_vm_ioctl,
 .compat_ioctl = kvm_vm_ioctl,
 .mmap = kvm_vm_mmap,
};

│├IS_ERR
│├PTR_ERR
│├kvm_create_vm [kvm_main.c](287)
││├kzalloc
││├ERR_PTR
││├spin_lock_init
││├INIT_LIST_HEAD
││├mutex_init
││├spin_lock
││├list_add
││└spin_unlock

  ・仮想マシンを生成する

│├kvmfs_file [kvm_main.c](129)
││├get_empty_filp
││├ERR_PTR
││├mntget
││└d_alloc_anon

  ・ファイルを作成しinodeを関連付け、仮想マシンにファイルを関連づける

│├get_unused_fd
│├fd_install

  ・

│├fput
│├kvm_destroy_vm [kvm_main.c](373)
││├spin_lock
││├list_del
││├spin_unlock
││├kvm_free_vcpus [kvm_main.c](360)
│││└kvm_free_vcpu [kvm_main.c](349)
│││ ├vcpu_load [kvm_main.c](258)
│││ │├mutex_lock
│││ │└vcpu_load [kvm_main.c](258)
│││ ├kvm_mmu_destroy
│││ ├vcpu_put [kvm_main.c](281)
│││ │├vcpu_put [kvm_main.c](281)
│││ │└mutex_unlock
│││ └vcpu_free
││├kvm_free_physmem [kvm_main.c](341)
│││└kvm_free_physmem_slot [kvm_main.c](320)
│││ ├__free_page
│││ └vfree
││└kfree
│└iput

 case KVM_GET_MSR_INDEX_LIST:
  ・MSRのインデックスリストの取得

├copy_from_user
├ARRAY_SIZE
└copy_to_user
2007年03月15日(木) 10:11:56 Modified by deku_nobo




スマートフォン版で見る