kvm

KVMの準仮想化機能

KVMにはいくつか準仮想化インタフェースが存在します. KVMはHWによる仮想化支援機構を利用してゲストを実行するので,準仮想化機能を使用しなくても任意のOSが実行できますが,準仮想化機能を利用することでVMのパフォーマンスを向上できる場合があります.…

KVMにおけるcpuid命令の取り扱い

前提 x86/Intelの話です.AMDでも多分同様. cpuid命令の取り扱い cpuid命令はKVM内で処理されます. 具体的には arch/x86/kvm/vmx.c:handle_cpuid() => arch/x86/kvm/cpuid.c:kvm_emulate_cpuid() => arch/x86/kvm/cpuid.c:kvm_cpuid() => arch/x86/kvm/cpu…

QEMU/KVM上のゲストのハイパーコールをQEMU側に渡す方法

前回説明したように,KVMでは,ゲストのハイパーコール(Intel CPUの場合はVMCALL命令,AMDの場合はVMMCALL命令)はKVM側で処理され,ioctl側に戻ることなくゲストに戻ります. QEMU/KVMにおいて,独自にハイパーコールを追加してQEMU側で処理するには修正が…

QEMUコードリーディングメモ

主にイベントループとKVM周り. QEMU v3.1.0 Linux v4.20 ターゲット: x86 QEMU Main Loop QEMUの主処理はGLibを使ったイベントループ. ゲストのvCPUは別のスレッドで実行(後述) vl.c:main() => vl.c:main_loop() => util/main-loop.c:main_loop_wait() =…

KVM GPUパススルー設定

環境 i7-4790 (with VT-d) GeForce GTX 1080ti Linux Mint 18.3 Sylvia (Ubuntu xenial base) Cinnamon やりたいこと KVM上のWindowsにGPUをパススルーで接続する 現在GPUはcuda計算用に利用 (ディスプレイはi915).Windowsを使うときだけパススルーさせたい…