タグ

ブックマーク / mkosaki.blog46.fc2.com (3)

  • 革命の日々! PSSとUSS

    http://journal.mycom.co.jp/news/2008/04/18/007/index.html プロセス管理機構も見直され、プロセスごとのメモリ使用量をかんたんに測定できる機能が追加された。カーネル2.6.25では、プロセスが使用するページに対応する物理ページ配置をプロセスごとに/proc/$PID/pagemapsとして作成、これを他のプロセスと比較することで共有するページを判別できる。共有ページを共有しているプロセスの数で除した数値を持つ「proportional set size (PSS)」と、共有されていないページをカウントした「unique set size (USS)」という2つの統計値も新設された。 この説明はへんだ。 カーネル内にUSSという統計値は存在しない。また、pagemapsというファイルは存在しない(pagemapだ) pagemapはページ

    nharuki
    nharuki 2010/08/20
    RSS, PSS, USSの説明
  • 革命の日々! シーケンスロック その5 volatileがダメな理由

    どもども。またまた間隔があいてしまいましたがシーケンスロックな話しの続きです。 前回の記事で坩堝さんから面白い指摘をうけたので今回は予定を変更してvolatileの話をしたいと思います。 retをvolatileにするだけではうまくいかないんですよね? どういう風になるんだろ. なるほど、たしかに世のC言語の参考書を見るとvolatileはある種の最適化を妨げる効果を持つと されています。 これだけ見ると、volatileとつけるだけすべての最適化が無効になってうまく動きそうですね。 しかし、その理屈は微妙におかしいのである 多くの人が「ある種の」という言葉を拡大解釈しているがvolatileは来スレッド同期に使えるようなシロモノではないのである。 つづきは、続きを読むからご覧ください。 あと、お願い。 今回の話は前提知識がいろいろとあるので、末尾のご参考にあげたURLを読んでから 読ん

    nharuki
    nharuki 2010/08/02
    「volatile変数への読み書きはいかなるmemory barrierも張らない」
  • 革命の日々! alternative マクロと自己修正コード

    alternativeマクロについて シーケンスロック その3 において > alternativeマクロは興味深い動作をするので、回を改めて詳しく説明しますが、 などと書いておいて すっかり忘れていた alternativeマクロですがいい機会なので解説しましょう。 いつものように lxr.linux.no あたりからソースを引っ張ってきている。 linux/include/asm-i386/system.h より 288 /* 289 * Alternative instructions for different CPU types or capabilities. 290 * 291 * This allows to use optimized instructions even on generic binary 292 * kernels. 293 * 294 * length

    nharuki
    nharuki 2010/07/27
    まさしく変態
  • 1