仕事で分散ファイルシステムを作っているんだけども、カーネルレイヤでのコーディングなので、非常に神経使うし面倒(楽しいけれども)。 Filesystem in userspace(FUSE)というものの存在はずいぶん前から認知していて学生時代にsshfsなどで使っていた。 FUS…
openCLの最初の記事で動かしたコードについて見て行く。 記事:openCLを動かしてみる - tkokamoの日記 動かしたコードのソース:OpenCLで行列の掛け算をしてみた : 試行錯誤な日々 そもそも何をするコードだったのか、、、 並列かしているのは、行列のかけ算…
前回はとりあえずコードを動かした。 http://tkokamo.hateblo.jp/ openCLを動かしてみる - tkokamoの日記 前回のコードを見るとカーネルコードの実装以前にclGetPlatformIDsやclGetDeviceIDsという函数が呼ばれていて気になったので、デバイスの情報取得周り…
HPC関連の仕事してるくせに(システムソフトを作っているので)書いたことないから、作業記録を込めて簡単に動かしてみる。 openCLとは wikipediaをみれば多分わかる。(自分は専門じゃないのでwikipediaが合っているかどうかはわからない) OpenCL - Wikipe…
NUMAのマシンなどでどのノードにどのデバイスが接続されていることを知るのにhwlocコマンドが役立つ。 以下はqemuでNUMA2ノード構成、nvmeデバイスをエミュレートした場合の構成
少し調べていたのでメモ。基本的にはカーネル内の話。コードはv4.9.6 シグナルに関しては言葉がややこしいので、以下のようにこの記事では使う。 シグナルの登録 シグナルが生成され対象のタスクのpendingリストに繋がった状態。 シグナルの受信 シグナルが…
はじめに 前回(http://tkokamo.hateblo.jp/entry/2017/08/12/191142)で概要は終わりにし、 今回からはコードを見ていこうと思います。 大体以下のような流れでRCUの実装を見ていこうかと思います。 rcu_dereference(), rcu_assign_pointer() ← 今回 Classic …
はじめに 前回(http://tkokamo.hateblo.jp/entry/2017/05/31/213427)は、かなりざっくりとした理解だったのでもう少し実装に近づいた概要です。 (1) 概要(概要)← 前回と今回 (2) Linuxでの実装 (3) rcu-walk(RCUの応用先) 今回までで概要は終わらして、…
はじめに ファイルシステムのrcu-walkを理解するためにRCUの勉強から始めようと思ったので書留ます。 RCUとはざっくりこんなものだ、と分かっている前提での記録です。 予想している流れとしては、 概要(概要)← 今回 Linuxでの実装 rcu-walk(RCUの応用先…
Linux 4.9からカーネルスタックにvmalloc領域が用いられるようになった。 v3.10系とv4.10系で以下のモジュールをロードしてみて、実際に確認してみた。 ディストリはCentOS7.2 stack_test.c #include <linux/module.h> #include <linux/kernel.h> static int __init stack_test_module_init( </linux/kernel.h></linux/module.h>…
KVMの上でXen(HVM)を動かそうとした時になかなか、解決方法がわからなかったので記録しておく。とは言っても、まだXenの上でDom Uは動かして無いんですが、、、。Dom 0が動くまでの道のりは以下の通り動作環境はホストがUbuntu 14.04、ゲストがUbuntu 12.04 …
48-146407 kvmなどの仮想化環境において、ゲストOSのネットワークやディスクI/Oを早くするために、virtioと呼ばれる準仮想化ドライバドライバを用いることがある。 今回は、あまり技術的に細かい部分には突っ込まず、なぜゲストOSのI/Oが遅いのか、なぜvirti…