![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
受信時はゲストが受信バッファをリングバッファに確保してavailableリングを更新.受信完了をホストがリングバッファに受信データを書き込んでusedリングを更新.受信サイズも通知. #kernelvm_study
2013-06-09 14:59:39![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
議論中:Generic Segmentation Offload(GSO)に関するフィールドがあるので,ゲストがホストに送りたいデータを全部渡して,あわよくばハードウェアでセグメント分割したいかもしれない. #kernelvm_study
2013-06-09 15:10:20![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
カーネルのドキュメントにテキスト版が置いてあった。 http://t.co/ef1FAkhcHo #kernelvm_study
2013-06-09 15:24:00![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
64kbのパケット用バッファをアロケート? LXR linux/drivers/net/virtio_net.c http://t.co/IR4isAf4jQ #kernelvm_study
2013-06-09 15:32:32![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
キューの作成。 nofify、callback用の関数ポインタを引数で受け取る vring_new_virtqueue() http://t.co/fJ3obMfDdP #kernelvm_studyo
2013-06-09 15:39:21![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
struct virtqueueを直接使うというよりもstruct vring_virtqueueから使うとい形かな。 #kernelvm_study
2013-06-09 15:48:21![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
sizeバイト分の連続したページを取得する関数があったのか。 void *alloc_pages_exact(size_t size, gfp_t gfp_mask) http://t.co/xoaHUtbswe #kernelvm_study
2013-06-09 16:03:14![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@masami256 alloc_pages()もそうですが、2のべき乗で取るので無駄が発生しやすいという感じですね
2013-06-09 16:13:31![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@hiraku_wfs ですねー。 処理を見たらsizeからオーダーを決定して、__get_free_pages()でページ単位でメモリ確保したあとにmake_alloc_exac()で余ったページを返すようになってますね。
2013-06-09 16:17:09![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
/* TODO: Individual devices generally have very little idea about the rest of the system, so instance_id should be removed/replaced. ウケる
2013-06-09 16:23:18![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
コメントを見るとusedの前にパディングが入るけど、struct vringの定義にはその領域はない。virtio_ring.hのvring_init()を見るとusedに設定するアドレスは計算している http://t.co/spqEEsh6he #kernelvm_study
2013-06-09 16:24:10![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
/* Note: Minux Guests (version 3.2.1) use ctrl vq but don't ack VIRTIO_NET_F_CTRL_VQ. Create ctrl vq unconditionally to avoid ウケる
2013-06-09 16:26:34![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
なんかあるんだけどw「MINUX is a form of operating system that〜」 http://t.co/pv5ODDXMGZ #kernelvm_study
2013-06-09 16:28:28![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
virtio-net 送信側のkick抑制についてメモ #fromEvernote https://t.co/gEw5oM7KEF #kernelvm_study
2013-06-09 16:31:23![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
avail_event,used_eventの追記 : featureのEVENT_IDXをたててusedリングとavailableリングの末尾にあるフィールドに特定のインデックス値を書き込むとそこに到達するまで割り込みとか通知を無効化するっぽい #kernelvm_study
2013-06-09 16:52:30![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
仮想化時代のパケットフォワーディング https://t.co/WKlZUpzpb2 #kernelvm_study
2013-06-09 17:09:45![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
仮想化環境でのパケット転送 -性能測定結果&考察- https://t.co/uNUyxunksU #kernelvm_study
2013-06-09 17:10:07![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
仮想化環境における パケットフォワーディング https://t.co/QkD102FFzA #kernelvm_study
2013-06-09 17:10:23