------------------------------------------------------------------- 2014/06/03 (Tue) [seminor] * アドレス固定しないでも実装できます * ceriumは絶対アドレス関係ないから * サジェスチョンでしかない、書いてないはず * map_fixidで書く必要はない * mmapしたアドレスがどこにmappingされるかは置いといて * それを正しく渡せればいいのだから、fixidは関係ない * どのアドレスを指定しているのか * blocked_read * 実メモリでないところをmmapしようとしてたら駄目 * どこの固定アドレスを指定してるかの問題がある * mmapなのにreadtaskを使う意味はあるのかどうか * 今までのmmapはどこに書いていた? * mmapをダブルバッファリングでやってほしい * ダブルバッファリングとは * mmapを2つやって、片っ方の仕事が終わったら解放して、 * もう一度mmapで割り当てる、これを繰り返す感じ * 2つのメモリマップ領域を交互に使う * 片っ方が処理を終える頃には片っ方が実行できるみたいな * file mmapってのを配列にして * 要素1を読んでるタスクに対して読み込みwaitforにひっかけておいて * 全部おわったらダブルバッファリングの切り替えを行う * どのタイミングでいつだれがダブルバッファリングを動かすのか * readのばあいはruntaskにいれたよね * vSyncの場合 * 単なる待ち合わせの場合 画面を書いている間、表示しているみたいな 表示と書き込みが別にあるってのがダブルバッファリングのきも readの場合は、mmapが動かない 条件分岐があってー・・・。 * runtask16の場合 * readのタスクに対してかけてる * メモリマップしたやつにwaitforかけていくけども * 全部にかけちゃうと量的に多い * readのところにいれてできるのか? * できなくはな・・・い・・・? * wのtaskのところでアドレスを振わけるのがめんどくさい * ダブルバッファリングしてくればこの辺りをいじらなくて済む * file -> mmapとは * ダブルバッファリングをしているとこいつを直接書き換えられる割と楽になる! * file mmap、next mmap用意 * 全部終わったらnext mmapに切り替える * そのときnext mmapがあくから〜〜〜 * create taskしてるときに * readの方のwait for(run taskに対するwait for) * wait for h exec * run task16にかかっている * 16ずつやっていく * 最後にひっかかるから、そこでバッファを切り替え * 問題はlogicを自分で理解して書けるのかどうかって点 ------------------------------------------------------------------- 2014/05/11 (Sun) [memo] void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); off はページサイズの整数倍でなければならない。 ページサイズの取得は、getpagesize() で調べることができる。 (ページサイズの整数倍でないと、error することを確認) http://www.gadgety.net/shin/tips/unix/ipc/mmap.html ------------------------------------------------------------------- 2014/05/08 (Thu) [memo] IO についての具体的な論文を出したい こういうアプリケーションは mmap がいい。fread がいい etc... Task の負荷が大きい例題があるといいよね GPU で word count を走らせた時も計測してみよう pread を fread で書き換えたり、Blocked mmap もやってみて、様々な読み込み方法を試してみよう ------------------------------------------------------------------- 2014/05/01 (Thu) [memo] Linux のメモリキャッシュをクリアする http://futuremix.org/2009/09/clear-linux-memory-cach %sysctl -w vm.drop_caches=3 vm.drop_caches=index index : 内容 1 : ページキャッシュ解放 2 : ダーティキャッシュ、inode 解放 3 : 1 かつ 2 sysctl について ページキャッシュとは?? ダーティキャッシュとは?? Linux PC でのスペックの確認方法 http://www.asterisk-works.jp/wiki/index.php/Linux_PC%E3%81%A7%E3%81%AE%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E7%A2%BA%E8%AA%8D%E6%96%B9%E6%B3%95 OS の確認方法 cat /etc/redhat-release redhat 系 cat /etc/debian_version Debian 系 cat /etc/lsb-release Ubuntu 様々なハードウェア情報 cat /proc/cpuinfo cat /proc/meminfo 計測を Block num division size いろいろ試してみよう Solaris でも測ってみたいよね -> mmap がはやいらしい read size を自動チューニングしたい どうにかできないかな??