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

  • 革命の日々! MALLOC_TRIM_THRESHOLD_ と MALLOC_MMAP_MAX_ パラメタについて

    どうもあまり有名ではないらしいので、ここで書いてみる。 http://mkosaki.blog46.fc2.com/blog-entry-241.html で書いた事とほぼ同じだけれど。 Linuxにおいて、CPU負荷を測定するベンチマークでは以下の環境変数を設定すると往々にして性能があがる。 % setenv MALLOC_TRIM_THRESHOLD_ -1 % setenv MALLOC_MMAP_MAX_ 0 MALLOC_TRIM_THRESHOLD_ はOSに未使用になったメモリを返却する契機をあらわしていて、-1は決して返却しない事を表す。 MALLOC_MMAP_MAX_ は最大mmap数で0は決してmmapせず、どんなに大きなメモリでもbrkを使ってメモリを取る事を意味する。 で、性能に効くのは(たいてい)MALLOC_MMAP_MAX_のほう。 glibcはアンチフラグ

    saoshima
    saoshima 2008/01/23
    kosaki linux benchmark glibc malloc
  • 革命の日々! i_size_writeでpreempt_disable()しないのはOKなのか? の続き

    seqcountが preempt_disableしてない件について というエントリで、seqcountってプリエンプションをなーんも考えてないんだけど、呼び出し側のi_size_write() もなーんも考えてないように見える。これって大丈夫なの? という疑問を問いかけたら、ひらさんから、i_semを忘れてる。とご指摘をいただいた。 なるほど。おっしゃる通りである。 とゆーわけで安心しつつも、いつおうkernel2.6.17で確認をいれてみる。 ・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・ i_sem がそもそも消えていますがなにか? いや、かわりに i_mutex が追加されていて、 セマフォじゃなくてミューテックスで保護してるので、排他自体はしてるだが、ミューテックスって誰かとバッティングしないかぎり atomic_xchg(); smp_mb(); の2

    saoshima
    saoshima 2006/06/25
    linux kernel bug
  • 1