2016-01-01から1年間の記事一覧

山伏峠・正丸峠ライド

12/29 山伏峠と正丸峠をのぼってきた 2016年最後の自転車 名栗湖 謎の壁画前でぱちり 山伏峠 平均 6-7% ほどで距離も短く20-30分もあればのぼりきれる 小ぶりな峠 (早い人は十分台で登れるぽい) 小ぶりだけども、道路の状態が良く、大きく蛇行するカーブが連…

ミドルウェア: abrtd (2)

前回の続き 。abrtd で カーネルパニック時の vmcore を採取する まとめ 検証作業をしてみた結果、正確には、 kdump が起動していて、 カーネルパニック後に kdump で vmcore を採取できた場合、 再起動後に vmcore + 予備情報を /var/crash 以下にまとめて…

ミドルウェア: abrtd

abrtd の素振りログを残す。調べてみてもあんまりエントリ無いので、ここに書いたことで誰かの何かの足しになろう abrtd を使うことで SIGSEGV を受けたプロセスのコアの収集や、カーネルパニックを起こした際の vmcore の収集を自動化できる 検証環境 CentO…

トレーニングライド: 稲城〜聖蹟桜ヶ丘

またもや お布団峠 を越えられず午後から出走 稲城〜聖蹟桜ヶ丘らへんの丘を負荷をかけてのぼって、のんびりおりて、終わり 多摩川

ソースコードリーディング: static void init_once(void *foo)

カーネル・トリビア Linux カーネルのソース (CentOS7) を読んでいると、下記のようなコードを見つけた static void init_once(void *foo) { struct socket_alloc *ei = (struct socket_alloc *)foo; inode_init_once(&ei->vfs_inode); } 変数名が foo とは …

man-pages 4.09 のリリース

ちょっと前から linux-man の ML を読み始めたのだけど、 man-pages 4.09 のリリースがお知らせされていた linux-man-pages.blogspot.jp リリースの内容 詳細はリンク先をみてもらえばよいが、更新内容は Linux Kernel 4.9 で追加された新しいシステムコール…

デバッグ: gdb で ruby のバックトレースを自動で採取

とある Rails / Unicorn サーバで perf top を眺めていたら、やたらと bcrypt_ext.so の BF_crypt が高いオーバーヘッドを示しているのを発見した。ひゃぁ Samples: 168K of event 'cycles', Event count (approx.): 50386752987 Overhead Shared Object Sym…

トレーニングライド

寒くなって朝の お布団峠 を越えられない 夜に1時間ほど走って終わり 練馬〜和光市〜朝霞 を往復するのがトレーニングコース。志木まで足を伸ばすこともある。陸上自衛隊朝霞駐屯地の前に 1.5 km ほどのストレート区間があり、路側帯も十分に広いので負荷を…

Google Play Music

Subsonic から Google Play Music に移行する - @banyan's blog を読んで、そういうやそんなのあったなと、 Google Play Music の存在を思い出して、家の外付けHDDで塩漬けになっていた iTunes の楽曲をアップロード祭りしている 以前はアップロードの上限が…

奥多摩・風張峠ライド

12/3 奥多摩から風張峠をのぼってきた

ソースコードリーディング: KVM_RUN

おそらく KVM API の中で一番利用頻度の高い API で、複雑なAPI である。ユーザランドのスレッドが ioctl(2) + KVM_RUN を呼び出して、ゲストに移るまでを追っている github.com ( ソースを追うだけで精一杯で、解説のようなことはできていないのでご了承を …

CentOS7 1611 CR リポジトリを使う

アナウンスから少し時間が経ったが、 CentOS7 1611 ( RHEL 7.3 ベース ) の RPM が CR リポジトリ で公開されている Early access to next CentOS Linux 7 release (1611) based on RHEL sources 7.3) is now available in the CR repos ( https://t.co/4Tbn…

ss で UNIX domain socket のバックログのサイズと accept(2) 待ちのソケット数を取る

UNIX domain socket での net.core.somaxconn や sk->sk_max_ack_backlog の実装を調べていた際に、 ss コマンドでソケットのバックログのサイズと accept(2) 待ちのソケット数を取れることを知った 以下、検証と実装を追いかけた記録

宮ケ瀬湖〜湘南ライド

11/26 宮ケ瀬湖と湘南に行ってきた 山にいって海にもいってのフルコース

__GFP_ZERO と 0 初期化

kvm のソースを読んでたら kvm_kvzalloc() なる関数が出てきた /* * Avoid using vmalloc for a small buffer. * Should not be used when the size is statically known. */ void *kvm_kvzalloc(unsigned long size) { if (size > PAGE_SIZE) return vzallo…

荒川サイクリングロード (2)

11/23 友人と荒川サイクリングロードに行ってきた ( 11/20 にもいったのに!) 秋ヶ瀬公園 友人の自転車は 2011年くらいの Cannondale SuperSix で ULTEGRA 6700 系。一世代前のモデルだけど、昨年からロードに乗りはじめた newbie な自分にとって逆に新鮮。

荒川サイクリングロード

11/20 荒サイ上流を走ってきた 荒川 秋ヶ瀬橋

Linux カーネル API: anon_inode_getfd, misc_register

KVM のソースを呼んでる中で anon_inode_getfd という API を知ったので、 KVM のソースコードを写経しながらカーネルモジュールを作ってみた github.com ... といってもユーザランドに向けて ioctl(2) のインタフェースを作るだけのモジュールで実用的なも…

ソースコードリーディング: KVM_GET_API_VERSION

前回 の続き。KVM の API を読んでいる KVM_GET_API_VERSION github.com 定数を返すだけの非常にシンプルな API。ユーザランド側でどう扱うかが疑問になったので、qemu のソースも一緒に読んだ qemu と一緒に読む KVM_GET_API_VERSION といった定数は qemu …

ソースコードリーディング: KVM_CREATE_VM / KVM_CREATE_VCPU

Linux カーネルのソースコードはちょいちょい読んできていたが、KVM 周辺は全くふれていなかったので、ソースを追いかけている KVM_CREATE_VM github.com KVM_CREATE_VCPU github.com O'Reilly の『詳解 Linux カーネル』 のような 凶器 書籍が無いので、Web…

デバッグ: VirtualBox +CentOS7 で kdb/kgdb の 素振り

Linux カーネルのデバッグ方法を各種 抑えておきたいと思って kdb/kgdb を扱う方法を調べていた (正確には kgdboc = kgdb over consol を試した ) kdb/kgdb とは kgdb, kdb の使い方と、カーネルデバッガーの内部 - kandamotohiro から引用 Kdb は、単純なシ…

宮ケ瀬湖周回ライド

11/12 宮ケ瀬湖をグルっとしてきた 宮ケ瀬湖の位置はここです

トレーニングライド・別府選手の Madone みてきた

二日酔いで午後までボロ雑巾、夕方にトレーニング走 トレックストア六本木 皇居周辺を走った後に、リアディレイラーの不調をみてもらうべく トレックストア六本木に立ち寄り ジャパンカップ や ツール・ド・フランスさいたまクリテリウム で別府選手が乗って…

デバッグ: CentOS7 BUG: unable to handle kernel NULL pointer dereference at (null)

CentOS7 で BUG: unable to handle kernel NULL pointer dereference at (null) で kernel panic したのを深追いで調べていた バックトレース [705327.823158] BUG: unable to handle kernel NULL pointer dereference at (null) [705327.824009] IP: [<ffffffff81573762>] skb</ffffffff81573762>…

白石峠ライド

10/30 白石峠へ行ってきた おふとん峠 から抜け出して遅いスタート

ソースコードリーディング: ipcs -m で 「対象」と翻訳されているソースを追う

CentOS7 で ipcs-m を実行すると下記のような出力になる $ ipcs -m ------ 共有メモリセグメント -------- キー shmid 所有者 権限 バイト nattch 状態 0x00000000 113934337 root 600 40 9 対象 部分の 対象 って訳されているのが何なのだろうと気になっ…

ソースコードリーディング: pthread_mutex_destroy(3)

pthread_mutex_destroy(3) のソースコードリーディングを hiboma/hiboma に push した github.com pthread_mutex_destroy(3) 済みの mutex を pthread_mutex_lock(3) しようとすると EINVAL を返すが、Linux (正確には NPTL だろうか) ではどんな実装か気に…

ソースコードリーディング: shmdt(2)

shmdt(2) のソースコードリーディングを hiboma/hiboma に push した github.com モチベーション shmdt(2) したアドレスで segmentation fault を起こす問題をリサーチしていた。man を呼んでも不明瞭な箇所があり、どんな実装か気になったので読んでいた プ…

ソースコードリーディング: /proc/sys/kernel/shm_rmid_forced

shmget(2) の挙動を調べてる最中に見つけた /proc/sys/kernel/shm_rmid_forced について、ソースコードリーディングした内容を hiboma/hiboma リポジトリに push した github.com IPC_RMID を強制する = 参照カウントが 0 になった System V 共有メモリセグ…

熱海〜十国峠 、三島〜箱根峠ライド

10/16 熱海から十国峠、三島から箱根峠を巡ってきた