ARM LinuxはTTBR1を使っているのか

LWNのSupporting KVM on the ARM architectureの記事にHYPモードのページテーブルに関して、以下のような説明がありました。 for the SVC and USR modes, the hardware has two separate page table base registers, which are used to provide the familiar…

KVM/ARMにおけるMMIOハンドリング

XenがHYPモードで動いているか知りたくてHardware accelerated Virtualization in the ARM Cortex〓 Processors [pdf]を読んでいると、スライドの中に “Syndrome” information on aborts available for some loads/stores Syndrome unpacks key information …

KVM/ARMにおける割り込み制御

LWNのSupporting KVM on the ARM architectureという記事の中で、ゲスト実行中にハードウェア割り込みが起きた時は、一度HYPモードにトラップした後、SVCモードへ移行、割り込み禁止を解除することでもう一度SVCモードで割り込みを受け取る、という記述があ…

LWNのKVM/ARMの記事の簡単なまとめ

LWNにSupporting KVM on the ARM architectureという記事が公開されていたので、ざっくりとまとめてみました。著者の一人はChristoffer DallというKVM/ARMの開発者の方です。※書き終わってから、記事はまだ無料公開されているわけではないことを思い出したの…

Asynchronous page fault解析

はじめに Linux-2.6.38でマージされたAsynchronous page fault(非同期ページフォールト、以降APFと略す)について調べてみました。(追記:ゲストのプロセス切り替え可能判定の間違いを修正しました。) Asynchronous page faultとは? 近代的なOSでは、ページ…

qemuのtrace機能

はじめに qemuには内部の処理をtraceするための機能があります。この機能を使うとprintfのように簡単でprintfより軽量なデバッグ出力を追加することができます。 まとめ 用途はデバッグ(printfの代わり) コンパイル時に機能をon/off指定する必要がある 普通…

VM間共有メモリivshmemを試してみる

はじめに qemu(-kvm)にはVM間共有メモリ(Inter-VM shared memory: ivshmem)という機能があります。名前のとおりVM間の共有メモリを実現する機能です。今回はこの機能を体験することが目的です。内部動作解析などは行なっていません。 How does ivshmem work?…

仮想マシンとBIOSと準仮想化

はじめに PCエミュレータや完全仮想化の仮想マシンの場合は、当然ながらBIOS(もしくはEFI)をエミュレーションする必要があります。BIOSが用意しなければならない情報には、例えばNUMAにおけるCPUやメモリの構成情報があります*1。物理マシンの場合は、基本的…

Rootfs over Virtfsでゲストを起動する

はじめに Virtfsを使うと、ホストのディレクトリをゲストにmountさせることができます。ここではdebootstrap等でホストに用意したrootfsを使ってゲストをブートさせる方法について説明します。 What's Virtfs? Virtfsは、"File system pass-through/Paravirt…

mmapとページフォールト

はじめに メモリ管理周りで勘違いしていた部分をコードを追いながら説明してみます。 概要 Q1: qemuはゲストメモリ領域をmmap(2)してるんだよね?A1: してますがコードには呼び出し箇所はありません*1。mmapはposix_memalign(3)内で呼び出されます。Q2: ゲス…

qemu-0.12.1

http://download.savannah.gnu.org/releases/qemu/qemu-0.12.1.tar.gz0.11からの主要な変更点は以下の通り。 - target-arm: FP16 and Cortex-A9 cpu support - target-i386: change bios from PC-BIOS to SeaBIOS - target-i386: change netboot roms from e…

ioeventfd & irqfd

2.6.32でマージされた*1KVMの新機能ioeventfdとirqfdについて調べてみました。 eventfd どちらもeventfd(2)を利用しているので、まずはその概略から。eventfdは2.6.22から利用可能なユーザプロセス間もしくはユーザ・カーネル間のイベント通知専用のシステム…

Rawhide virt preview repo for Fedora 12

Fedora 12向けのvirt previewレポジトリが公開されました。Fedora 11時代からありましたが、このレポジトリを使うと、仮想化関連パッケージの開発版(つまりFedora 13)を先取りして試すことができます。yumの設定は以下のとおり。 # cat > /etc/yum.repos.d/f…

net-bridge

[Qemu-devel] [PATCH 0/4] net-bridge: rootless bridge support for qemuここ最近で一番盛り上がっているスレッド。qemu(-kvm)を使ったことがある人ならば一度は不満に思ったことがある、tapを使うためにはroot権限が必要、という制限をなくそうという話題。

Kemari for KVM

[RFC] KVM Fault Tolerance: Kemari for KVMKemari(Xen向け高可用性ソフトウェア)がKVMへのポーティングを計画しているようです。Sheepdogに比べるとKVMコミュニティの反応が芳しくないみたいですが、おそらくまだコードがないからだと思われます。とりあえ…

KVM関連ソフトウェア/プロジェクト/製品のまとめ

間違いやこれ忘れているよ!といったご指摘がありましたらコメントでツッコミを入れてくれると助かります。11/6更新 VMM Luvalley KVMのコードを再利用したType-I VMM(らしきもの) d:id:kvm:20090326:1238042786 AlacrityVM 高性能指向なKVM KVM+vbus? WinK…

KSM内部解析

概要 KSM(Kernel SamePage Merging)とは、ユーザプロセスのメモリ領域を走査して、同一内容のページを1つのページにマージすることで使用メモリ量を削減するLinuxカーネルの機能です。マージされたページはCoW(Copy on Write)状態に設定され、ページへの書き…

KSM merged!!

どうやら無事にマージされたようです。git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/search ksm2.6.32に間に合って良かったですね(^^そんなksmですが、どうやらFedora Rawhideでは既に2.6.31にバックポートされているみたいです。 http://cvs.…

First attempt to use guestfish/libguestfs

はじめに Fedora 11にはVMディスクイメージ内のファイル操作のためのツール(guestfish)が用意されています。VMディスクイメージ内のファイルにアクセスするには、rawイメージならば単純にループバックマウントすれば良いだけですが、qcow2フォーマット等の場…

Two documents

[PATCH] KVM: Document basic API virtio_pci draft spec という2つのドキュメントが登場しました。KVM関連技術はドキュメントがあまり存在せず、困ったときは"read the source!"という感じだったのですが、多少は状況が良くなるかもしれません。徐々にドキ…

qemu-kvm-0.10.4 released

ANNOUNCE: qemu-kvm-0.10.4KVMのユーザスペースコンポーネント(要するにQEMU)の安定版がリリースされました。実は初めての安定版です。つい先日リリースされたqemu-0.10.4の修正が含まれています。ダウンロードはこちらからどうぞ。 ところでkvm-XXやqemu-0.…

二人のAlan Cox

最近まで勘違いしていましたがLinuxカーネルコミュニティの重鎮であるAlan Cox氏と仮想化研究で著名なRice大学のAlan L. Cox氏(http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/c/Cox:Alan_L=.html)は別人みたいですね。てっきり同じ人かと思っ…

KSM comes back!

LWNにKSM tries againという記事(subscriber-only)があったので簡単にまとめてみました。 昨年11月に颯爽と現れたKSM(kernel shared memory) 同じ内容を持つページを1つにまとめる*1ことで、メモリ使用量を大幅に削減することが可能とするKSMは、特に仮想マ…

qemu/kvm git repos moved

最近いろいろ変わったみたいなのでまとめてみました。 kvm git clone git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git http://git.kernel.org/?p=linux/kernel/git/avi/kvm.git;a=summary qemu-kvm (旧kvm-userspace) git clone git://git.kerne…

kvm-85 tarball replaced

2ヶ月の開発期間を経てkvm-85がリリースされました。今回のリリースからユーザスペースコンポーネント(qemu-kvm-devel)とカーネルモジュール(kvm-kmod-devel)が独立したtarballとしても提供されるようになりました(参考)。そんな開発方針の変更がたたったの…

最近の気になる話題(4/1)

Luvalley project http://d.hatena.ne.jp/kvm/20090326/1238042786参照 Remus Xen向けのHA(High Availability)システム KemuriKemariとの違いはなんだろ? ごめんなさい、名前を間違えていました。 Xen (Dom0) for Linux 2.6.30 Ingo氏は通常のマージプロセ…

Luvalley project

Luvalley project: running KVM without LinuxというSubjectのメールがKVM MLに流れてました。どうもKVMのXenの間の子のようなアーキテクチャのVMMのようです。追記:アナウンスメールとREADMEから推察するに、Luvalleyとは以下のようなVMMみたいです。 コー…

@ITにKVMの連載が

Linux標準の仮想化技術「KVM」の仕組み (1/2):知って見るみるKVM(1) - @IT (略)そのせいもあってか、関心を持っている人は少ないように感じます。 なぜなんでしょうか? 理由を考えてみました。1. 名称が悪い (笑)KVMは一応VMM(の一部)なのだからKVMMと…

最近の気になる話題

http://www.virtualization.info/jp/2009/03/red-hat20090305-5.html 知ってる人に取ってはもう今さらな話題ですが、一応「やっぱやーめた」と言わなかったということで一安心です。 http://www.h-online.com/open/Kernel-Log-Morton-questions-acceptance-o…

Xen Summit North America 2009

http://www.xen.org/xensummit/xensummit_winter_2009.html スライドとビデオ