2013-11-01から1ヶ月間の記事一覧

φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの6

前回でとりあえずarch_init_early()は大体読んだので次はinit_early()に戻ってcell_init()から。cell_init()はhypervisor/control.cにある。 int cell_init(struct cell *cell, struct jailhouse_cell_desc *config, bool copy_cpu_set) { unsigned long *co…

φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの5

「φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの3」で残した4つの関数のうち、paging_init() とpage_map_create()は「φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの4」で確認したので まずはhypervisor/arch/x86/setup.carch_init_early()を。この関数…

φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの4

「φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの3」の続きを。まずはhypervisor/paging.cpaging_init()から。paging_init()を上から順に見ていきます。 int paging_init(void) { unsigned long per_cpu_pages, config_pages, bitmap_pages; unsigned long…

φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの3

「φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの2」の続きでinit_early()を。 init_early()の呼び出し元はhypervisor/setup.cのentry()。最初に行われるのはGlobal Offset Tableの初期化。 static void init_early(unsigned int cpu_id) { unsigned long …

φ(.. )メモシテオコウ on_cpu_each()はasyncなのか調べてみる

on_cpu_each()がasyncなのかというところのめもです。on_each_cpu()を見ると三番目の引数waitがなんか怪しいのが分かりますね。 これが使われているのはsmp_call_function()なのでこれを見る必要があると。 547 /* 548 * Call a function on all processors.…

φ(.. )メモシテオコウ on_each_cpu()の単なるめも

on_each_cpu()の単なるめも #include <linux/module.h> #include <linux/kernel.h> #include <linux/cpumask.h> #include <linux/smp.h> MODULE_DESCRIPTION("hello module"); MODULE_AUTHOR("masami256"); MODULE_LICENSE("GPL"); static atomic_t count; static void foobar(void *info) { printk(KERN_INFO "CPU[%d] hello</linux/smp.h></linux/cpumask.h></linux/kernel.h></linux/module.h>…

φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの2

前回の「φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの1」からの続きでjailhouse_enable()から。この関数は以下のようにjailhouseコマンドを実行した時に呼ばれる。 jailhouse enable /path/to/qemu-vm.cell引数に渡しているファイル名はconfigs/の下に有…

φ(・・*)ゞ ウーン jailhouseのコードを読んでみるの1

まあ、なんとなく。。。見ているコードはgitのこのコミットで。jailhouseのツールとしての構成としては以下のようになっているようです。 カーネルモジュールのjailhouse.ko ↑が読み込むファームウェアのjailhouse.bin ユーザーランドのツールのjailhouse ソ…

φ(.. )メモシテオコウ Linux:firmwareの読み込み処理めも

jailhouseのmain.cを見ていてファームウェアの読み込みrequest_firmware()のところでこれってどうやってんだろ?と思ったので調べてみるなど。見たカーネルのバージョンは3.12です。 この関数がどんなことをしているのかというのはLinux Kernel Watchにあり…

φ( ̄ー ̄ )メモメモ iOS:gtm-oauth2でOAuth認証してgoogleのAPIを使う

iOS

OAuthのライブラリとしてgtm-oauth2がありますが、ちょっと使って見たのでめもです。オフィシャルのドキュメントはこちら。 やりたいこととしてはOAuthの部分はgtm-oauth2を使ってAPIへのアクセスは自分でやるという方式です。APIへのアクセスまで含んだGoog…

φ(.. )メモシテオコウ UITableViewCellをドラッグ&ドロップで移動する

iOS

UITableViewCellをドラッグ&ドロップで移動するのはどうやんだ?と思ったらそんなに面倒な事では無かったのでめも。まずはデータ。 セクションの名前のarrayとセクション内のデータを保持するarrayを保持するarray。 @property (nonatomic, retain) NSArray…

φ(.. )メモシテオコウ Linuxに新しいハイパーバイザが出たので試そうと思ったんだけど。。。

Jailhouseという新しいハイパーバイザの紹介記事がLWNに載ってたのでちょっとためそかなーと思ったけど、READMEによるとLinux 3.12だとまだ動かせないみたいでした\(^o^)/ Currently it requires kvm.git, next branch on the host (in order to get suppo…

〆(.. )カリカリッ!! lxc-archlinuxがデフォルトではインターフェースにbr0を期待しているので・・・

lxcでarch linuxのテンプレートでも使おうと思って気付いたことは/usr/share/lxc/templates/lxc-archlinuxはbr0をインターフェースに期待していて、lxc-createコマンドの-fオプションに渡すconfigファイルに設定をしててもダメだということ。こんなファイル…

〆(.. )カリカリッ!! Linuxのidleスレッドめも

ふと気になったのでめも。実際にidleスレッドを作るのはinit_idle()だけどそこに至までの流れは結構深い。 start_kernel() --> sched_init() --> init_idle() --> rest_init() --> kernel_init() --> kernel_init_freeable() --> smp_init() --> idle_thread…

〆(.. )カリカリッ!! systemd-coredumpctlでコアダンプしたプロセスのcoreファイルを取得

使っているLinuxディストリビューションはArch Linuxです。多分systemdを使っている環境ならsystemd-coredumpctlでcoreを取れると思いますが未確認です。。。こんな感じで色々とやられています。 masami@saga:~/debug/usr$ sudo journalctl -b -r -p 2 -- Lo…

φ(・・*)ゞ ウーン Archでkdumpをちょっと便利に

Arch Linuxでkdumpを設定する場合はArchのWikiの説明を見ればOKです。ただFedoraのkdumpの設定と比べるとちょっと手間がかかる部分もあります。どうせならkexecの実行時に使うカーネル名、initramfs名あたりは決め打ちじゃなくて動的にできるようにしたほう…

φ(・・*)ゞ ウーン Arch Linuxでパッケージを作ったのでAURに投稿しておいた

需要があるかどうかはともかく、自分では使うだろうというところからxfstestsのパッケージを作ったのでAURにも投稿しました。 パッケージはこちらに。今までdebパッケージ、rpmパッケージは作ったことありましたが、Archのパッケージはこれが初でしたがこれ…

φ(.. )メモシテオコウ xfstestsめも

xfstestsの使い方めも物理ディスクではなくてイメージファイルで実行する場合は以下を実行してイメージファイルとファイルシステムの作成をする。 [root@saga xfstests]# dd if=/dev/zero of=test.img bs=1M count=1024 1024+0 records in 1024+0 records ou…

φ(.. )メモシテオコウ Arch Linux:AURからではなくて普通にAndroidのSDKをダウンロードしてセットアップ

Arch LinuxでAndroidの開発環境を整えようと思ったらArch LinuxのWikiにある手順で良いと思いますが、今回はAndroid SDKの配布ページからeclipseと一緒に配布されている方を使ってみました。SDKはオフィシャルのページからダウンロード。これは特筆するよう…

φ(.. )メモシテオコウ /sbin/installkernelを適当に作っておく

Arch Linuxに/sbin/installkernelコマンドが無いのでとりあえず作っておくと後々楽ですねということで。Linuxカーネルをこのようにビルドしている場合、最後のmake install実行時に/sbin/installkernelというコマンドが呼ばれます。 make menuconfig make bz…