ユーザレベルでメモリマップ,デマンドぺージングやりたいという話し

メモリマップやりたい それWindows(構造化例外, SEH)でできるよ それLLVM IRでできるよ! という流れでした. 続きを読む
0
Shuzo Kashihara @suma90h

ユーザレベルで自作memory mapped fileできないかな...特定のアドレス空間をlibcとかに使われないように予約して,無効なメモリ領域にアクセスされたらキャッチし,そのアドレスへファイル等をマップしてあげる とか

2011-01-18 18:49:31
Shuzo Kashihara @suma90h

実現できるのなら,CoWしたドキュメントのアクセス(読み込み)はポインタで参照するだけなので楽かなと思ったり

2011-01-18 18:51:28
勇士Q @ucq

@suma90h 自分でアクセス違反の例外を捕まえればできそうな気がする。 [カリピスト]

2011-01-18 18:53:28
Shuzo Kashihara @suma90h

マップしたい空間のサイズはGBレベルで,という条件があると,アドレス空間からして64ビットプログラム向けか

2011-01-18 18:53:30
Shuzo Kashihara @suma90h

@ucq ですよね,実装したい! アクセス違反って,読み込みのパーミッションも設定できましたっけ? そしたらアドレス空間予約と,例外キャッチだけか(マルチプラットフォーム対応で実装したい的な)

2011-01-18 18:55:59
Shuzo Kashihara @suma90h

ギガバイト・テラバイト級のデータを扱うコード書きたい(分散処理がやりたい,てわけじゃなくて

2011-01-18 19:04:26
勇士Q @ucq

@suma90h たぶんできるよん。Windowsでは試した覚えがあります。マルチな環境だとmprotectとsignal(SIGSEGV)でできそう。 [カリピスト]

2011-01-18 19:05:35
Shuzo Kashihara @suma90h

@ucq ふむふむ.あと,既に使われているメモリ(ヒープ)を,別アドレスにマップさせてやりたい(バイナリエディタのドキュメントの内部構造からフラットなアドレスへマップしたい,とな

2011-01-18 19:16:14
Syoyo Fujita 🌸 レイトラ ® 🐯 3 周年 🎉 @syoyo

@suma90h LLVM IR にして、ロード、ストア命令にフックを書けるパス書いたりとかいかがでしょう?アドレススペース拡張を使えば、特定ポインタだけに作用させるとかできます。 > ユーザーレベル mmap.

2011-01-18 21:38:20
Shuzo Kashihara @suma90h

@syoyo その発想はなかったです! そういうアプローチもやってみたいです

2011-01-18 21:39:25
Sadayuki Furuhashi @frsyuki

@suma90h そういうのあったらとても欲しい>ユーザレベル memory mapped file できればもっと汎用的に、アクセスされたら関数が呼ばれるとか!

2011-01-18 21:40:37
Shuzo Kashihara @suma90h

LLVM IRレベルでインタフェースを隠蔽したままふるまいを変えるというような大胆(半ば力業)な手法は最近考えてなかった,やりたい...

2011-01-18 21:42:38
Syoyo Fujita 🌸 レイトラ ® 🐯 3 周年 🎉 @syoyo

@suma90h 昔、このやり方で 256KB しかメモリが無いプロセッサに、SW キャッシュ(ページフォルトしたら DMA で外部メモリから取得)を実装してみました。

2011-01-18 21:46:04
Shuzo Kashihara @suma90h

@frsyuki ほほう,どんな使用法なのか詳しく聴きたいところです

2011-01-18 21:46:06
Sadayuki Furuhashi @frsyuki

@suma90h ネットワークの向こうのデータをメモリのように見せるとか! うまくいけば色々とゼロコピーにできるハズで。

2011-01-18 21:51:29
SKS/ファントムの申し子 @repeatedly

LLVM IRでのユーザレベルmmapって気になるんだけど…

2011-01-18 21:52:53
Sadayuki Furuhashi @frsyuki

ユーザーレベルでmmapというかデマンドページングができると、透過的なキャッシュとか楽勝で嬉しいな

2011-01-18 21:53:43
Shuzo Kashihara @suma90h

@syoyo ふむふむ,興味深いです,ありがとうございました.時間できたら実装してみます

2011-01-18 21:55:04
Syoyo Fujita 🌸 レイトラ ® 🐯 3 周年 🎉 @syoyo

@frsyuki @suma90h 最新の linux RDMA ドライバを駆使すれば、高速なのが出来そうなところまでは分かっているのですが、まだ試せていません。

2011-01-18 21:59:07
Sadayuki Furuhashi @frsyuki

@syoyo DMAでメモリに見えるネットワークI/Oって萌えますね

2011-01-18 22:02:35
HOSHIZUKI, Yusuke @lunatic_star

@frsyuki Windows ならできそう。構造化例外とアクセス保護を併用すれば。

2011-01-18 22:03:32