スピノル
スピノル

マイルーム

スピノルのマイルーム
スピノルのマイルーム
持ち家(マンション) / リビング兼用 / オーディオ・シアター兼用ルーム / 16畳~ / 防音なし / スクリーン~100型 / ~4ch
元自作派
所有製品

レビュー/コメント

レビュー/コメントはありません

カレンダー

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

お気に入り製品

お気に入りユーザー

お気に入りユーザーはありません

日記

memlock とは、何ぞや?

このエントリーをはてなブックマークに追加
2010年01月23日

これも、私にはあまり関係なさそうなんですが、たぐってみると、こんな感じですか。
----------------------------------------
NAME
  limits.conf - configuration file for the pam_limits module
DESCRIPTION
  <domain> <type> <item> <value>
    <item>
      memlock
      maximum locked-in-memory address space (KB)
----------------------------------------
resource.h
#define RLIMIT_MEMLOCK 9  /* max locked-in-memory address space */
----------------------------------------
NAME
  getrlimit, setrlimit - get/set resource limits
DESCRIPTION
  getrlimit() and setrlimit() get and set resource limits respectively.
RLIMIT_MEMLOCK
  The maximum number of bytes of memory that may be locked into RAM.
  This limit affects mlock(2) and mlockall(2) operation.
  Since Linux 2.6.9, no limits are placed on the amount of memory
  that a privileged process may lock, and this limit instead governs
  the amount of memory that an unprivileged process may lock.
----------------------------------------
NAME
  mlock, munlock, mlockall, munlockall - lock and unlock memory
DESCRIPTION
  mlock() and mlockall() respectively lock part or all of the calling
  process’s virtual address space into RAM, preventing that memory from
  being paged to the swap area.
----------------------------------------

***

さて、以上から愚考するに;

そもそもの話として、page out が起きるような状況なのか?

# もちろん、意図的に page out が頻発するような状況を作ることは容易だが、
  音楽再生にそのような状況が必然か?

http://community.phileweb.com/mypage/entry/2023/20090709/12845/
 『Prism Sound社のOrpheus導入(OS X チューニングもどき)
 ↑たとえ、ARDOUR を使っていてすら、実メモリはスカスカではないのか。

と思うわけです。

***

そして、さらに;
----------------------------------------
RETURN VALUE
  On success these system calls return 0. On error, -1 is returned,
  errno is set appropriately, and no changes are made to any locks in the
  address space of the process.
ERRORS
  ENOMEM (Linux 2.6.9 and later) the caller had a non-zero RLIMIT_MEMLOCK
  soft resource limit, but tried to lock more memory than the
  limit permitted. This limit is not enforced if the process is
  privileged (CAP_IPC_LOCK).
----------------------------------------

memlock の値を変えたときに、実際のところは、何が起きているのか?

変えることによって、mlock() に対するRETURN VALUE として、
現実に -1 が戻ったりしてるのか?

(そこまで、user process が、mlock() しようとしているのか??
 もし、しようとしていないのであれば、当らない上限を上げようが下げようが、
 何も変わりはしない。。)

***

そして、さらに;

仮に、memlock の値を変えたことにより、mlock() に対する RETURN VALUE として、
-1 が戻ったり、戻らなかったりの様子が変化していたとしても、

実際の、memory 使用状況まで、変化しているのか?

もし、現実に、page out が発生していなければ、memlock に成功しようが、
失敗しようが、何も変わりはしない。。

# 船が沈まないのなら、救命胴衣を確保できるか否かは、問題には成り得ない。
  確保できなかったとしても、困るのは、現実に船が沈んだ場合のみである。

***

----------------------------------------
NOTES
  Memory locking has two main applications:
  real-time algorithms and high-security data processing.

  Real-time applications require deterministic timing, and, like scheduling,
  paging is one major cause of unexpected program execution delays.
  ← これは、嘘ではないのですが、もし、本当に起きていればの話。
----------------------------------------

以上、実践を伴わない妄想による愚考でした。。

http://manpages.ubuntu.com/manpages/karmic/en/man5/limits.conf.5.html
http://manpages.ubuntu.com/manpages/karmic/en/man2/getrlimit.2.html
http://manpages.ubuntu.com/manpages/karmic/man2/mlock.2.html

次回の日記→

←前回の日記

レスを書く

レスを書くにはログインする必要があります
ログインする