***本記事にはプロモーションが含まれています。***
シリアルの扱いをポーリングからスレッドに変えたパッチを作りました。名前つきパイプをクライアントモードで使うオプションも付け加えました。
-serial pipe_client:com_1
-serial pipe:com_1を別のQEMUで使ってサーバーを立て、もう1つで-serial pipe_client:com_1で接続すると、2つのQEMUで通信ができます。
QEMUを2つ使って名前つきパイプで通信してみると、ポーリングからスレッドに変えることで、通信速度が4倍くらい速くなっています。スレッドって効率がいいんだってことがわかった。
ただ、windbgが使えなくなってしまいました。調べてみると、CPUのロードが大きいときにmain_loop_waitのループの回転速度が遅くて、データが送受信されていないことが原因でした。
前回作ったwindbgのパッチを使うとちゃんと動きました。
windbgを使えるようにしたバイナリ。
http://www.h6.dion.ne.jp/~kazuw/qemu-win/qemu-0.8.2-windbg.zip
パッチ。
http://www.h7.dion.ne.jp/~qemu-win/download/qemu-20060730-host_alarm.patch
http://www.h7.dion.ne.jp/~qemu-win/download/qemu-20060730-serial-thread.patch
http://www.h7.dion.ne.jp/~qemu-win/download/qemu-20060730-windbg.patch
これでいいんだと思うけど。