[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 メーリングリストの案内