FreeBSD のオブジェクトファイルがアーキテクチャ毎に生成されるように2017年11月20日 16時18分31秒

比較的最近に、FreeBSD 12-CURRENT でのオブジェクトファイルの生成先が変更されていた様だ。今までは、/usr/obj/usr/src の直下となっていたが、そこから更にアーキテクチャ毎のディレクトリになるようだ。
/usr/obj/usr/src/i386.i386
差分コンパイルしていても、ディレクトリが変わってしまうため、古いファイルが大量に残る。10 GB しか割り当てていなかったため、rm をしていなかったら、ファイルシステムがいっぱいになってしまった。

FreeBSD の SA が三つ2017年11月16日 12時59分58秒

FreeBSD-SA-17:08.ptrace は、ptrace が未処理のデータを漏らす可能性があるバグ。対象は 10 系と、11 系の全て。

FreeBSD-SA-17:09.shm も同じく shm を通して IPC を行っている場合に、カーネル内のデータを漏らしてしまうバグだが、jail 越しの環境で起こる問題。こちらの対象は 10 系のみ。

カーネルメモリの漏洩バグが続くが、FreeBSD-SA-17:10.kldstat.asc も似たように kldstat が未初期化のデータを漏らす。こちらの対象は 10 系と、11 系の全て。

暖炉に火を入れて遊ぶ2017年11月13日 14時29分47秒

金曜日からニューヨーク近隣は一気に冷え込んだ。その前までは、摂氏十五度近くはあったのだが、金曜日から氷点下。昼間は若干暖かかったが、夜には二十窓からも冷気がただよってきた。

土曜日も寒かった。昼間は摂氏五度ぐらいはありそう。土曜日の日本語学校を追えた後にすぐに帰ろうと思ったが、子供達は公園で遊んでいきたいとのこと。落葉が一気に進んで、公園が落葉だらけになっていて、落葉の山を作ったりして遊んでいた。四十分ぐらいで、日も傾いてきたて冷え込んできたので帰宅。

土曜日と日曜日に、暖炉に薪を組み点火。部屋全体を暖かくは出来ないが、多めに薪をくべると、暖炉の前は温かくなった。

今秋一番の冷え込み2017年11月11日 14時19分28秒

金曜日はとても冷え込んだ。夕暮れ時で、既に摂氏零付近。帰りの自転車は、外気温を調べて寒そうだったので、一枚余計にジャケットを羽織って出た。

寒いためか、セントラルパークでは人も自転車も疎ら。自転車だとそこまで寒くは無かったが、ジョージワシントン橋に近付く頃には、耳と足先が冷えてきていた。まだ、寒い日が続くわけではないので、ブーツや帽子は今日は持たなかった。

深夜には、零下五度ぐらいにまで下がっていたようだ。

アメリカでも夏時間が終った2017年11月06日 12時50分56秒

今回の週末でアメリカの夏時間が終った。日曜日から一時間時計を戻す。日の出の時間が遅くなるが、日の入りの時刻が早くなる。五時には既に真っ暗になる。

自宅で使っている FreeBSD は Windows とのディアルブートになっていて、Windows が管理するローカル時刻になる。そのため、一度 Windows を起動して、時刻を合わせる。

仕事場は今回、時刻合わせの点検の担当になったので、各々の機械の時間を点検し、問題なく動いているのを確認した。

FreeBSD EN tzdata2017年11月03日 12時19分44秒

FreeBSD-EN-17:09.tzdata が出ている。夏時間の変更の時期が前回 FreeBSD がリリースされた時から、変わっているため新たに更新する必要があるとのこと。

対象の地域については言及されていないが、対象外の地域では問題ないとのこと。日本は夏時間の設定が無いので影響無し。影響がある地域の場合は cron や syslog の時刻がずれてしまう。

十月三十一日はハロウィーンだった2017年11月02日 12時03分18秒

十月三十一日はハロウィーンだった。今年は水曜日。帰って来るときに、ちらほら仮装して親子で歩いているのが何人か見えた。

自宅に着くと真っ暗。子供達は妻と近所を回っていたようだ。近所の学校の友達を誘って、四時から歩き回っていたとのこと。帰って来たのは六時半で、二時間半歩き通しだったそうだ。自宅に着いても、子供達は元気一杯で喜んで、貰って来たお菓子の数を数えていた。一口タイプの小さい物が主だが、それでも三百個。

特に娘は、この類のお菓子を食べると肌が荒れるのであげられない。そして、娘も食べさせてもらえないのはわかっている。それでも、貰って来ること自体が楽しいようでご機嫌だ。

vm.swap_fragmentation sysctl が追加された2017年10月30日 12時55分41秒

11-STABLE に sysctl vm.swap_fragmentationが追加された。現在は、11.1-RELEASE が夏の終りに出されたばかり。次のリリースは 11.2-RELEASE なので、最初に使えるのはそこからになるだろう。

現在、二つのデバイスが割り当てられていて、利用量はゼロ。

% % sysctl vm.swap_fragmentation
vm.swap_fragmentation: 
Free space on device ada0s2b:
number of maximal free ranges: 1
largest free range: 262142
average maximal free range size: 262142
number of maximal free ranges of different sizes:
               count  |  size range
               -----  |  ----------
                   1  |  262142

Free space on device da0s2b:
number of maximal free ranges: 1
largest free range: 522610
average maximal free range size: 522610
number of maximal free ranges of different sizes:
               count  |  size range
               -----  |  ----------
                   1  |  522610
わざとスワップを使ってからの表示。
% sysctl vm.swap_fragmentation
vm.swap_fragmentation: 
Free space on device ada0s2b:
number of maximal free ranges: 11
largest free range: 232508
average maximal free range size: 22607
number of maximal free ranges of different sizes:
               count  |  size range
               -----  |  ----------
                   2  |  1
                   1  |  3 to 4
                   4  |  5 to 7
                   1  |  13 to 20
                   1  |  34 to 54
                   1  |  10946 to 17710
                   1  |  232508

Free space on device da0s2b:
number of maximal free ranges: 14
largest free range: 492884
averge maximal free range size: 36367
anumber of maximal free ranges of different sizes:
               count  |  size range
               -----  |  ----------
                   3  |  1
                   3  |  3 to 4
                   1  |  5 to 7
                   1  |  13 to 20
                   3  |  21 to 33
                   1  |  55 to 88
                   1  |  10946 to 17710
                   1  |  492884

AIX の nawk は正しく /[\]]/ が処理できない2017年10月20日 12時25分40秒

awk で特定の一文字に適合するときは、[] で囲む。例えば、[ACD1] だと、A か C か D か 1 のどれかになる。] 自体をいれようとすると、awk が囲みの最後だと認識してしまうので、文字として扱わせるために、バックスラッシュで回避をする。 [)\]}>] 等として、全ての閉じ括弧を指定したりする。

どうも、AIX の nawk ではこの、] を正しくエスケープ出来ないようだ。

Solaris では問題なく ] を見付けてくれる。

solaris % echo ']' | nawk '$1 ~ /[)\]]/{print "matched", $0}' 
matched ]
solaris % echo ')' | nawk '$1 ~ /[)\]]/{print "matched", $0}' 
matched )
solaris % echo '>' | nawk '$1 ~ /[)\]]/{print "matched", $0}' 
AIX では エスケープされた ] があると、適合の式自体が誤動作するようだ。\] を除けば、) は見付けてくれるが、] は見付けようが無い。
aix % echo ']' | nawk '$1 ~ /[)\]]/{print "matched", $0}' 
aix % echo ')' | nawk '$1 ~ /[)\]]/{print "matched", $0}'
aix % echo ')' | nawk '$1 ~ /[)]/{print "matched", $0}' 
matched )
aix % echo '>' | nawk '$1 ~ /[)\]]/{print "matched", $0}' 

AIX 上でも、Solaris 上でも、awk は ] のエスケープを処理できるようだ。

aix % echo ')' | awk '$1 ~ /[)\]]/{print "matched", $0}'
matched )
しかし、Solaris 上の awk は古い物の事が多く、nawk 程の新しい構文が使えないことも多々ある。gawk が入っていれば、この両方の問題を回避できる。

FreeBSD のスワップ枯渇時の kill シグナルの伝達が遅い2017年10月19日 14時04分29秒

FreeBSD に業と過負荷をかけて遊んでいる。make buildworld -j 100 等とすると、clang のコンパイル時にあっと言う間に大量のメモリが持っていかれる。

まだ、確証は無いのだが、スワップ領域が埋め尽くされた後の kill がやけに遅い。まず、シグナルがプロセスに届くのにやけに時間がかかる。また、実メモリはすぐに解放されるようだが、スワップ領域の解放に時間がかかりすぎている様に見える。

top で観察していると、pagedaemon は動いているが、スワップの利用領域はなかなか下がらない。pagedaemon が何とか未解放のスワップを処理できれば、随分と効率が上がりそうに見えるが…

実験しているのは 11-STABLE で、現在は 11.2-RELEASE が出された後。