tkokamoの日記

HPCの研究開発なのでそんなことをかきたい

RCU(Read Copy Update)をちゃんと知る(2)-1 RCUにおけるポインタの更新と参照

はじめに 前回(http://tkokamo.hateblo.jp/entry/2017/08/12/191142)で概要は終わりにし、 今回からはコードを見ていこうと思います。 大体以下のような流れでRCUの実装を見ていこうかと思います。 rcu_dereference(), rcu_assign_pointer() ← 今回 Classic …

RCU(Read Copy Update)をちゃんと知る(1)-2 実装よりの概要

はじめに 前回(http://tkokamo.hateblo.jp/entry/2017/05/31/213427)は、かなりざっくりとした理解だったのでもう少し実装に近づいた概要です。 (1) 概要(概要)← 前回と今回 (2) Linuxでの実装 (3) rcu-walk(RCUの応用先) 今回までで概要は終わらして、…

RCU(Read Copy Update)をちゃんと知る(1)-1 ほんとの概要

はじめに ファイルシステムのrcu-walkを理解するためにRCUの勉強から始めようと思ったので書留ます。 RCUとはざっくりこんなものだ、と分かっている前提での記録です。 予想している流れとしては、 概要(概要)← 今回 Linuxでの実装 rcu-walk(RCUの応用先…

カーネルスタックがvmalloc領域になったことの確認

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>…

1の位が5の自然数の2乗の計算方法

25×25 = 625は以下のように計算する 20×30 = 600 + 5×5 = 25 →625 もっと大きくても同様で 215×215は 210×220 = 46100 + 5×5 = 25 →46125 数式的に成り立つのか確認してないけど、試したものは全部うまくいってるからいけるんだろう。 算数の先生になったわ…

3辺が整数の直角三角形を無限に見つける方法

ピタゴラスの定理的にも成り立つので、どこかにのっているだろうけど、自分では見つけられなかったので記録。 小学校とかで直角三角形を沢山見つけろと言われたら参考にしてください。 ピタゴラスの定理ってのは、直角三角形の斜辺がc、一番短い辺がa、次に…

Xen on KVM (1)

KVMの上でXen(HVM)を動かそうとした時になかなか、解決方法がわからなかったので記録しておく。とは言っても、まだXenの上でDom Uは動かして無いんですが、、、。Dom 0が動くまでの道のりは以下の通り動作環境はホストがUbuntu 14.04、ゲストがUbuntu 12.04 …

virtio(vhost)の概要

48-146407 kvmなどの仮想化環境において、ゲストOSのネットワークやディスクI/Oを早くするために、virtioと呼ばれる準仮想化ドライバドライバを用いることがある。 今回は、あまり技術的に細かい部分には突っ込まず、なぜゲストOSのI/Oが遅いのか、なぜvirti…