May 2008

先日書いた@ITの記事ですが、結構ブックマークされているようです。
で、苦笑いしちゃったのはこれ。 id:TAKESAKO のコメント「この連載は期待できる」

いや、ただの番外編ですから。。
連載の話なんて欠片もありませんから。。
読みきりの続編の話すらありませんから。。

とりあえず、このブクマ数だと色々と厳しいと思うんだ。うん。
だれかブクマ数増やしてくれ

Linuxカーネルのソースツリーの中には
linux/Documentation/vm/ にmlock.cというサンプルプログラムがあります。
なにをするかというと

% mlock ls

のようにすると、引数に与えられたlsがmlockallされて動くという。
HPC系でmlockの効果をお手軽に見たいときに使うのかな?

名前がやたらややこしいが、CPUSETSを簡単に使えるようにするphythonラッパーの名前がCpuset。
むしろ今すぐ名前変えろ、と(^^;

We are please to announce the release of cpuset v0.9.1 available here:

Source: http://developer.novell.com/wiki/index.php/Cpuset
Packages: http://download.opensuse.org/repositories/home:/tsariounov:/cpuset/

Cpuset is a GPL v2 Python application to make using the cpusets
facilities in the Linux kernel easier. It allows manipulation of cpusets
on the system and provides higher level functions such as implementation
and control of a basic CPU shielding setup. The actual command is
called cset.

If you're tired of manipulating cpusets by hand, or writing and
rewriting cpuset startup scripts to help manage shielding, then this
tool could be for you.

The source link above contains access to a subversion repository,
bugzilla instance and mailing lists for cpuset.

For an more in-depth writeup on cpuset, see the RT wiki at:
http://rt.wiki.kernel.org/index.php/Cpuset_management_utility

Thanks,
Alex Tsariounov



http://rt.wiki.kernel.org/index.php/Cpuset_management_utility を見ると、

Using cpuset to implement shielding

To create a shield, for example on a 4-way machine, shielding cpus 1,2,3 and leaving cpu 0 for system tasks (unshielded):

# cset shield --cpu 1-3



To move kernel threads from the root cpuset (all processors) to the system processors (unshielded cpus):

# cset shield --kthread on



To run a program in the shield, ie. on the shielded processors:

# cset shield --exec /opt/path/bin/my_code



To move a set of already running processes and threads (tasks) into the shield:

# cset shield --shield 2242,2244,3000-3100




のようにシステム動作CPUを切り離す事に主眼がおかれており、複数のCPUSETを柔軟に切り替えるような用途は想定してないように見える

remap_file_pages()というマイナーなシステムコールがある。
VM屋さんはみんな大嫌いなノンリニアーマッピング(VM_NONLINER)を実現するためのシステムコールだ(*)

んで、このシステムコール

1.引数となったアドレスの vma->vm_flags が VM_CAN_NONLINEAR がONでなければEINVAL
2.mapping_cap_account_dirty() が真なら、内部的にmmapやりなおし相当にfallback

という仕様になっていて、1によりhugetlbfs はEINVAL、2によりディスク系のFSは全滅。
よって、効果があるのはramfsとtmpfsぐらい?という状況

・・・なんだけど、もともとの開発動機がラージデータベースサポートじゃなかったっけ?
DB向けでHugetlbfs未サポートで許してもらえるってのは要するに誰も使ってないってことじゃねーの?

とゆーわけで、VM_NONLINER関係のコードを全部消してしまえ。とかいう極論に考えが傾きつつあるこのごろ。


(*) ようするに Lee Schermerhorn の仕込んだバグを直すのに休日を一日つぶされたから逆恨みしてるだけなんですが。

FF7風の戦闘がうざい。

あと、FF2の直後にやると普通に盾をつかってしまって、めっさ苦労した。
FF3は二刀流最強だっちゅーの!

ラスボス2ターンで死ぬとか。もうね。
バーサク強すぎ。

あと、あれだな。
ファミコン版FF2は根本的な欠陥があって

1.装備画面で回避率とか魔法干渉とか表示されない
2.マニュアルには回避は敵の攻撃喰らってれば(よけなくても)あがるよん。
  とウソが書いてある
3.ちまたの攻略本ではパーティーアタックを薦めまくっている
4.よって、ちまたのよい子は合理的に考えると、重武装戦略をとる。
  てゆーか、子供が入手したマジックアイテムを使わずすてるとか無理。

でもそれは成長率が低くて、ラストダンジョンが抜けられなくて挫折する。と
で、たぶん、携帯版をつくるときの難易度調整でパーティーアタック戦略でも攻略できるように難易度が下げてあると想像していて、プレイヤーが合理的にすばやさ重視戦略をとるとぬる過ぎる。と。

ふむ。

あまりに欲求不満がたまったので(簡単すぎて欲求不満がたまるなんて何年ぶり?)DSとFF3を買いにいってしまっただわさーー

皇帝(人間バージョン)がミニマムで死んだ件について。

携帯版はFF2とは思えんぬるゲーにしあがっておりますな。性的な意味で。
パンデモニウムに期待。

昨日だけで、checkpatchでエラーが出るパッチが2件、ビルドが出来ないパッチが1件、マージされてしまった。
Andrew Morton、まじ申し訳ない。

教訓: 体調悪いときと、忙しいときの仕事の合間はパッチ投げない!

↑このページのトップヘ