タグ

ブックマーク / tiki.is.os-omicron.org (3)

  • Omicron Linux/LKM/GDBを使ってコードを追っかける

    Linux/GDBを使ってコードを追っかける」のカーネルモジュール編 gdb vmlinux /proc/kcore では、カーネルモジュールのシンボルが読み込まれないので、gdbが起動した後にadd-symbol-fileコマンドを使ってシンボルを読み込む必要がある。ただし、単純に (gdb) add-symbol-file net/ipv4/tcp_cubic.o としても、相対アドレスなので、使えない。そこで、.text、.dataセクションなどの先頭番地をgdbに教える必要がある。これらのアドレスは、/sys/module/モジュール名/sections/以下のファイルを見ればわかる。 # ls /sys/module/tcp_cubic/sections/ . .data .gnu.linkonce.this_module .strtab __param .. .data.re

  • Omicron Linux/NAPI

    2.5 系(2.4.20にバックポートされている)で実装中の新しいネットワークドライバインタフェース. Jamal Hadi Salim、Robert Olsson氏らによって開発された 新しい機能としては, Interrupt mitigation ハイパフォーマンスネットワークでは1秒間に数1000回の割込みが発生する.で,高負荷時にはしばらく割込みを禁止して(間引いて),1回の割込みでパケットをまとめて処理する. dev->poll() 使う? PM(SCore) には Interrupt Reaping ってのがある.受信割込み起きる前に NIC のレジスタ見て,パケットを吸い上げる. Packet throttling システムの負荷が高く,パケットを落さねばならないときは,なるべく下のレイヤで落すようにする? NAPIコンテキストはデバイスごとに一つだけど、一つのデバイスか

  • Omicron Linux/kmalloc

    Linux/メモリ管理 Linux スラブ・アロケーターの徹底調査 (IBM dW 2007-05-15) kmalloc/kfree,スラブアロケータについて. 書式 #include <linux/slab.h> void *kmalloc(size_t, int); void kfree(const void *); kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsigned long, void (*)(void *, kmem_cache_t *, unsigned long), void (*)(void *, kmem_cache_t *, unsigned long)); void *kmem_cache_alloc(kmem_cache_t *, int); int kmem_cache_s

  • 1