[BitVisor-devel:91] 保護ドメインでの浮動小数点の利用
Yasushi Shinjo
yas @ cs.tsukuba.ac.jp
2016年 12月 2日 (金) 10:50:27 JST
筑波大学の新城です。こんにちは。
先日の BitVisor Summit 5 で、浮動小数点の利用に関して質問がありました。
その時、松下さんがやっていたと言いましたが、小清水さんでした。
小清水さんがどうやったかは、BitVisor Summit の資料にあります。19ページ。
https://www.bitvisor.org/summit/slides/BitVisor-Summit-05-koshimizu.pdf
論文もあります。これにも、同じようなコードは出ています。
http://id.nii.ac.jp/1001/00087078
この中で、vmmcall_rpc() というのが出てきますが、こちらは、松下さんの仕
事でした。やっていることは、 msgsendbuf() で、保護ドメインのプロセスを
呼び出しているものです。概略は、次のスライドにあります。
https://www.bitvisor.org/summit2/slides/bitvisor-summit-2-04-shinjo.pdf
これは、ゲスト OS から保護ドメインへの RPC なので、浮動小数点とは関係あ
りません。松下さんは、パッチを投げていました。
http://www.bitvisor.org/archives/bitvisor-devel/2012-February/000031.html
http://www.bitvisor.org/archives/bitvisor-devel/2012-February/000029.html
まとめると、こんな感じでしょうか。
----------------------------------------------------------------------
asm_rdcr0(&cr0);
cr0 &= ~CR0_TS_BIT;
asm_wrcr0(cr0);
save_fpu_registers(env);
msgsendbuf(....);
asm_rdcr0(&cr0);
cr0 |= CR0_TS_BIT;
asm_wrcr0(cr0);
restore_fpu_registers(env);
----------------------------------------------------------------------
新城
BitVisor-devel メーリングリストの案内