タグ

カーネルとロックに関するiwwのブックマーク (2)

  • Linus(と筆者)を嘆かせたanon_vma騒ぎ(2/2) - @IT

    4月版 Linus(と筆者)を嘆かせたanon_vma騒ぎ 小崎資広 2010/5/18 rmapスケーラビリティパッチとその混乱 LinuxにおけるVMの役割の1つに、仮想アドレスと物理アドレスの変換があります。仮想→物理変換は主にページフォルト時の処理のために必要であり、物理→仮想は主にページ回収処理(キャッシュ破棄やスワップアウト)で使われます(ページをfreeにする前に参照しているプロセスのページテーブルエントリを削除しておかないと、カーネルがクラッシュしてしまいます)。 Larry Woodmanはanonymous memory(注1)用の物理→仮想変換処理がAIM7ベンチマークに大幅な性能劣化を与えていることを報告しました。 anonymous memoryの物理→仮想変換処理(注2)は、図1のような構造になっています。vm_area_struct、略してVMAが、プロセスの

  • エンタープライズ向けに刷新されたカーネル・コア

    マルチスレッド対応の強化 ■vcache vcacheは、仮想アドレスと物理ページの対応付けの変更をコールバック関数によって通知する仕組みである。 後述するfutexの実装に使用されるため、カーネル2.6に追加された。 ■futex(Fast Userspace Mutexes) futexは、伝統的なUNIXカーネルで使われているsleep/wakeupとよく似た同期機構をユーザーランドに対して提供する。 主にNPTL(Native POSIX Thread Library)などのライブラリの実装に使われるため、アプリケーションから直接利用することはあまりないと思われるが、POSIX ThreadはJavaスレッドの実装などにも用いられており、同期処理を多用するアプリケーションには利益があるだろう。 futexシステムコールの主な機能はFUTEX_WAITとFUTEX_WAKEである。

    エンタープライズ向けに刷新されたカーネル・コア
  • 1