linux

linuxのスレッド生成処理に関するメモ

linuxのスレッド生成処理に関するメモ。 sys_cloneから呼び出されるdo_forkあたりについて。 1. スレッドの生成 以下のプログラムを実行すると、スレッドを一つ生成する。 #include <stdlib.h> #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h> #include <sys/syscall.h> #define THREADMAX 1</sys/syscall.h></sys/types.h></unistd.h></pthread.h></stdio.h></stdlib.h>…

SystemTap Beginners Guide 5.3と5.4のメモ

5.3 プロファイリング 以下のセクションでは、関数呼び出しの監視によりカーネルの活動状況を分析する方法を説明する。 5.3.1 関数呼び出しを数える このセクションでは、カーネルが30秒間に何回カーネルの関数を呼び出すのか特定する方法について説明する。…

SystemTap Begginers Guide 5.2 のメモ

5.2 ディスク 以下のセスクションではディスクとIOの状況について監視するスクリプトを説明する。 5.2.1 ディスク読み書きトラフィックの集計 disktop.stpは実行中のプロセスで最も重いディスク読み書きをしているプロセスを特定する。 #!/usr/bin/stap # # …

SystemTap Beginners Guide 5.1 のメモ

Useful SystemTap Scripts この章では、SystemTap スクリプトを紹介する。 これらはsystemtap-testsuite RPMをインストールすると、/usr/share/systemtap/testsuite/にインストールされる。 5.1 Network 以下にネットワークに関するスクリプトを紹介する。 5…

SystemTap Beginners Guide 4章のメモ

User-Space Probing SystemTapはカーネル向けに作られたが、ユーザー空間のプローブも可能になった。 SystemTapのユーザ空間プローブには、カーネルのutrace拡張が必要である。 詳細は http://sourceware.org/systemtap/wiki/utrace で確認せよ。 現在のカー…

Systemtap Begginers Guide 3章のメモ

Understanding How Systemtap Works SystemTapは実行中のLinuxシステムを、単純なスクリプトで詳細に調査出来るように設計されている。SystemTapスクリプトの裏側にある主なアイデアは、イベントとハンドラである。 SystemTapがスクリプトを実行すると、Syst…

Systemtap Begginers Guide の1章と2章のメモ

Introduction SystemTapは、主にカーネルに対するトレースと探査をするツールである。 1.1 ドキュメントの目標 SystemTapは実行中のカーネルを監視するための機構を提供する。 SystemTap無しでは、実行中のカーネルを監視するのに非常に手間がかかる。 また…

単純なキャラクタ型ドライバを実装した際のメモ

単純なキャラクタ型ドライバsimple_charを作成した。 simple_charの機能概要 キャラクタ型ドライバsimple_charは以下のような機能を持つ。 ドライバsimple_charは、デバイス毎にバッファを持つ。 プロセスはread,writeを使って、そのsimple_charのバッファに…

linuxカーネルが提供するリストの使い方について

linuxカーネルではlinux/list.hでリストを提供している。 リストはlist_head構造体と、その構造体のオブジェクトを操作するための関数によって構成される。 list_head構造体は以下のように定義されているため、一見しただけでは任意のデータをリストとしてど…

Fedora17でcyclictestを実行した際のメモ

Fedora17でリアルタイム性能テストプログラムcyclictestを動かしてみた。 計測対象 対象のカーネルは以下の通り。 デフォルト: Fedora17のデフォルトカーネル3.4.0 PREEMPT有効: 3.4.0でCONFIG_PREEMPT=y, CONFIG_NO_HZを無効にしてビルドしたカーネル Fedo…

Fedora17でsystemtapを実行する

Fedora17でsystemtapを実行出来るようにするまでの手順のメモ環境は以下の通り。 $uname -rs Linux 3.4.0-1.fc17.x86_64 $cat /etc/redhat-release Fedora release 17 (Beefy Miracle) $stap -V Systemtap translator/driver (version 1.7/0.153 non-git sou…