2007-05-01から1ヶ月間の記事一覧

カーネルモジュールことはじめ #7

今日は ip_vs_test_schedule() 関数に手をいれます。(コードはこちら) この関数は、IPVSが新しい接続を受け入れる時に呼び出されます。そして接続すべきリアルサーバを指す ip_vs_dest 構造体のポインタを返します。リアルサーバのリストは、引数で渡され…

デバイスドライバロード時の動作

どういう訳か、見えない「何か」に背中を押されたので、Linuxがデバイスドライバをロードした時の挙動を追ってみようと思います。例として(?) # modprobe r8169 した場合の挙動を追うことにします。# 少し長めなので結論を急ぐ方は こちら をどうぞ。まずは …

カーネルモジュールことはじめ #5

ip_vs_test 用の Kconfig と Makefile のパッチです。これで make menuconfig から test scheduling (IP_VS_TEST) を選択できるようになるはずです。あ、あと、#3のip_vs_test.c は net/ipv4/ipvs/ に置いて下さい。これで、現在稼働中のカーネルのソースで…

カーネルモジュールことはじめ

見ての通りなので細かい説明しません、ごめんなさい(ちょー手抜き! hello.c #include <linux/module.h> static void __exit hello_exit(void) { printk("hello kernel module unload\n"); } static int __init hello_init(void) { printk("hello kernel module!\n"); retur</linux/module.h>…

カーネルモジュールことはじめ #3

LVS

どのリアルサーバにも割り当てないIPVSのスケジューラ(!?) # いったい何に対抗してんだ?俺(^^;;# 5/29追記、 大事なもの忘れてた!! register_ip_vs_scheduler() で指定している構造体を定義してないやん! というわけでコードに追記しました。試してみた…

IPVSでthresholdを有効活用したい

LVS

かなり時間が空いてしまった感がありますが、IPVSのthresholdネタです。こないだは、既存のスケジューラに小細工をして、weight=1 なサーバを sorry_server と見なして動かしてみました。 しかし、これだと、 全スケジューラのソースに手を加えないといかん …

はろー64ビット

今日、親切なおにいさんが会社の検証用マシンにdebianをいれてくれました。 なんと、中身をみてびっくり! $ uname -a Linux sag15 2.6.18-4-amd64 #1 SMP Mon Mar 26 11:36:53 CEST 2007 x86_64 GNU/Linux $ gcc -v Using built-in specs. Target: x86_64-l…