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

SystemTapのお勉強

今まで全く使い方知らなかったけど便利そうなので勉強してみた。 やっぱりDTraceと似た感じに思えるけど、DTrace on FreeBSDより出来ることが多いみたい。DTrace on Solarisは知らん。 コールグラフ Call graph tracing これコピってくれば取り敢えずでる。…

virsh consoleでVMのコンソールひらいたら

virsh consoleでUbuntuのVMのコンソールひらいて、ログインしてシェルにコマンド打とうと思ったら、いきなりこんなの出てきてビビるなど。 Unhandled exception in thread started by <bound method MetaReleaseCore.download of <UpdateManager.Core.MetaRelease.MetaReleaseCore object at 0x7f58ff88fb50>> Traceback (most recent call last): File "/usr/lib/python2.7/dist-p…</bound>

VT-dでpassthroughしたデバイスの実機上での割り込みスレッドがpsで見えてる

syuu@ubuntu:~$ ps ax|grep kvm|grep irq 1024 ? S< 0:00 [kvm-irqfd-clean] 6353 ? S 0:00 [irq/81-kvm:0000] 6354 ? S 0:02 [irq/82-kvm:0000] 6355 ? S 0:00 [irq/83-kvm:0000] 6359 ? S 0:01 [irq/84-kvm:0000] 6360 ? S 0:02 [irq/85-kvm:0000] 6361 ? …

/proc/sys/irq/XX/smp_affinity

画像をクリックして「オリジナルサイズを表示」を選択。

SR-IOV Interrupt Handling on Linux KVM

画像をクリックして「オリジナルサイズを表示」を選択。

82599(Intel 10G Ethernet)の割り込み頻度

前回の記事で、iperfを回している時の割り込み回数が25000 - 30000 intr/10secというような数字が出ていたので、Linuxではどうだろうか?と思って/proc/interruptsの値をシェルスクリプトで10秒毎に取るやり方で計測してみたら、回数じゃなくて違う所が気になり…

続々・CPU毎のシステムコール回数、割り込み回数、etcの取得

続・CPU毎のシステムコール回数、割り込み回数、etcの取得 - かーねる・う゛いえむにっきで書いたプログラムを、出力をcsvにしてじーっと眺めていたら、v_intrの値がvmstat -iの各割り込み要因の増え方と比較して低すぎるように思えたので、vmstat -iの結果もn秒…

続・CPU毎のシステムコール回数、割り込み回数、etcの取得

n秒間に何回イベントが発生したかを取得するプログラムに改造してみた。 vmtest.c · GitHub $ clang -o vmtest vmtest.c -l kvm $ sudo ./vmtest 10 cpu0: v_swtch:1339 v_trap:4 v_syscall:101 v_intr:0 v_soft:520 v_vm_faults:3 v_cow_faults:0 v_cow_opti…

CPU毎のシステムコール回数、割り込み回数、etcの取得

vmstatから取れそうだけど、読みにくいし意味がよく分からなかったから、ソースコードを分解してたらこんなん出来た。 vmtest.c · GitHubman kvm_getpcpuを読む限り、カーネル内のper-cpu storageの中身をユーザランドへコピーしてきているように読める。 それっ…

最近興味を持った論文リスト

1996 The effectiveness of affinity-based scheduling in multiprocessor networking An Evaluation of Network Stack Parallelization Strategies in Modern Operating Systemsと近い内容らしい 2000 End-System Optimizations for High-Speed TCP Zerocop…

Intelの10Gイーサで遊んでみた 追試2

ちゃんと測れない気がするが、雰囲気をつかむためにこんな計り方をしてみた。 $ while :; do vmstat -i|tee -a intr.log;sleep 1;done ix0 irq intr/sec ix0:que 0 1.0526315789 ix0:que 1 1.0526315789 ix0:que 2 866.3684210526 ix0:que 3 1.0526315789 ix0:…

Intelの10Gイーサで遊んでみた 追試

Intelの10Gイーサで遊んでみた - かーねる・う゛いえむにっきの続き。恐らく、Interrupt Stormが起きているから性能が落ちているのではなく、継続的にInterrupt Stormのワーニングを吐いているせいで性能が落ちているのではないか、というのが今の所の結論。それ…

Intelの10Gイーサで遊んでみた

手元にIntel Ethernet Server Adapter X520-DA2×2とSFP+のケーブルが届いたのでちょっと遊んでみた。 構成 FreeBSDマシン CPU Core i7 X980(物理6コア、論理12コア) RAM 24GB Kernel FreeBSD 9.0-current Linuxマシン CPU Core 2 Quad Q6600(物理=論理4…

VIOPS06で「RPS・RFS等最新Linux Kernel事例」と題してお話してきました

はじめに 第一回カーネル/VM探検隊@関西、第二回日本Vyattaユーザ会ミーティングで行った発表のダイジェスト版です。詳しく知りたい人はこちらの内容ではなく、第二回日本Vyattaユーザ会ミーティングの動画、資料をみる事をお勧めします。あと、最新って書…

VirtualBox 4.1BETA2でPCI-passthrough未遂

VirtualBox 4.1β2登場 - Linuxホスト向けにPCIパススルー機能なんて記事があったので、うっかりインストールして試してみたが、失敗。 $ sudo VBoxManage modifyvm "OpenBSD" --pciattach 00:19.0@01:05.0 VBoxManage: error: Host PCI attachment only supp…

新しいディスクにGentoo Linuxを引っ越す

sdb1, sdb2, sdb3にGentoo Linuxがインストールされてて、sda1, sda2, sda3へ引っ越す場合。 init 1 mount /dev/sdb1 /boot fdisk /dev/sda mkfs.ext2 /dev/sda1 mkswap /dev/sda2 mkfs.ext4 /dev/sda3 mount /dev/sda3 /mnt mkdir /mnt/boot mount /dev/sda…

新しいディスクにZFS RootなFreeBSDを引っ越す

RootOnZFS/GPTZFSBoot/Mirror - FreeBSD Wikiこのへんを参考にada0へzrootを(ミラーは無しで)作っている前提。 gpart create -s gpt ada1 gpart add -b 34 -s 64k -t freebsd-boot ada1 gpart add -s 4G -t freebsd-swap -l swap1 ada1 gpart add -t freeb…

USB-stick bootなChromeOSはやたらとパーティーションが多いと聞いて

ちょっと簡単にパーティーション割りを見てみた。 どんな感じに使ってるかは未だ確かめてない。VMイメージでも同じかどうかも未確認。取り敢えず第一報として。イメージはこのへんから。 syuu@localhost Downloads % sudo losetup -f ./ChromeOS-Vanilla-0.1…

igb(4)を理解する為にデータシートを読む(RSSハッシュテーブルの初期化と書き換え)

前の記事と同じくigb_initialize_receive_unitsをみると、RETAというところへ書き込んでいる: union igb_reta { u32 dword; u8 bytes[4]; } reta; /* Warning FM follows */ for (int i = 0; i < 128; i++) { reta.bytes[i & 3] = (i % adapter->num_queues…

igb(4)を理解する為にデータシートを読む(RSSハッシュ関数用のシード設定)

igb_initialize_receive_unitsをみると arc4rand(&random, sizeof(random), 0); でランダムな値を取得してきて for (int i = 0; i < 10; i++) E1000_WRITE_REG_ARRAY(hw, E1000_RSSRK(0), i, random[i]); で書き込んでいる。 データシートを読むとRSSRKはRSS…

igb(4)を理解する為にデータシートを読む(RSSハッシュキーの取り出し)

まずはこのフローを見てもらうと分かりやすいのだけれど、FreeBSDのイーサーネットドライバでは割り込みハンドラ(em_irq_fast)からtaskqueue_enqueueを呼んでカーネルスレッドを起こして、このスレッドが実際にパケットを取り出しに行く(em_irq_fast)。フロ…

Gentooでvirt-managerでbridge

Gentooのvirt-managerとかlibvirtって今のところmaskされてるんだけど、なんでかというといくつかの機能がまだうまく動かないからっぽい。例えば、localhost(QEMU)の「詳細」を表示して「ネットワークインタフェース」を選ぶと「libvirt接続はインターフェー…

もくもく4thステップ

12ステップで作る組込みOS自作入門作者: 坂井弘亮出版社/メーカー: カットシステム発売日: 2010/05メディア: 単行本購入: 24人 クリック: 252回この商品を含むブログ (39件) を見るこの本の読書メモ。ROMの書き換え上限回数はメーカー保証で100回。コード書…

もくもく3rdステップ

12ステップで作る組込みOS自作入門作者: 坂井弘亮出版社/メーカー: カットシステム発売日: 2010/05メディア: 単行本購入: 24人 クリック: 252回この商品を含むブログ (39件) を見るこの本の読書メモ。H8/3069Fでは0x000000 - 0x07ffffが内蔵ROM(512KB)、0x…

もくもく2ndステップ

12ステップで作る組込みOS自作入門作者: 坂井弘亮出版社/メーカー: カットシステム発売日: 2010/05メディア: 単行本購入: 24人 クリック: 252回この商品を含むブログ (39件) を見るこの本の読書メモ。この章では以下のライブラリ関数追加しただけ。 memset()…

もくもく1stステップ

12ステップで作る組込みOS自作入門作者: 坂井弘亮出版社/メーカー: カットシステム発売日: 2010/05メディア: 単行本購入: 24人 クリック: 252回この商品を含むブログ (39件) を見るこの本の読書メモ。 ld.scr SECTIONS { . = 0x0; .vectors : { vector.o(.da…

Google Summer of Code 2011

FreeBSDプロジェクトでGSoCにApplyしたら採択してもらえました。 Proposalはこちら: http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/syuu1228/1内容としては、最近調べて回ってるネットワークIO周りの延長線上で、tcpdumpやらwiresha…

ネットワーク関係記事まとめ

勉強しながら書いているので、古い記事は十分に理解せずに書いていたり、一部内容が重複する記事を書いていたりしてるが、一度まとめてみようと思う。 NetBSD-current ip_flowを通らない場合のNetBSD-currentのIPパケット受信処理 ファストパスとBSD NetBSD-…

FreeBSDのパケットディスパッチについて

探検隊での発表や、FreeBSD/i386のパケット受信フロー - かーねる・う゛いえむにっきの補足。まず、話の前提のおさらいから。 マルチコア環境でネットワーク受信処理をスケールさせるには、NICに届く沢山のパケットを複数のコアへばらまいて並列に処理させる…

私のTwitterポリシー

使用理由 お友達が居ない…話し相手が居ない…(´;ω;`) 発言 有益な事はつぶやかない 注意したいこと 私はとある中央演算処理装置やそのアーキテクチャの中の人ではない 魚類でもない