2010-01-01から1年間の記事一覧

RADOS Gatewayを分解してコマンドツールを作ってみる

Ceph本体についてくるradosコマンドで同じ事が出来るんだから必要は無いんだけど、コードの理解を深めるために。http://github.com/syuu1228/radoscmds

panicを解決してメモリ量が出る所まで進んだ

panicの原因はphysmemを初期化していないのが原因だったので、これにきちんと物理メモリ量を代入するように直した。 cvmctl:900043f0 cvmmemctl:46104 Unknown Boot-Descriptor: Using Defaults Boot Descriptor Ver: 0 -> 0/0 CPU clock: 500MHz Core Mask:…

Copyrightが出てpanicする所まで来た

ページテーブルを引く所でこけてるから仮想メモリ周りが悪いのかと思ったら、NULLポインタを解決しようとして何故か初期化されてないproc0のユーザ空間向けページテーブルを引いているのが原因だった。NULLポインタを関数コールしてるコンソール周りを直した…

OpenBSD/OCTEONが起動しなかった

ページング周りが全然ダメで、仮想アドレス使い始めた瞬間に死んでしまう使えないシロモノが出来上がった。 その辺のコードはどのMIPSでも大体共通で、特にOCTEONで気をつけるべき部分は無いかと思っていたので、なんでうまく行かないのかよく分からず悩み中…

FreeBSD/mipsが某ルータで起動した

http://svn.freebsd.org/base/user/jmallett/octeonをcheckoutしてきて、ブートローダの違いで動かん部分をゴニョゴニョした。 まぁ、殆どコメントアウトしただけなんだが。 Cache info: picache_stride = 4096 picache_loopcount = 4 pdcache_stride = 128 …

買ったばかりのSAL50F18を手放すべきか否かについて、或いはレンズ沼のお話

カメラはど素人なので、色々と迷走したお話。 事の顛末 悩みに悩んだ挙句、DiMAGE A1よりSONY α200+TAMRON A16へ乗り換え、以来ずっとこの組み合わせを使い続けていたのだが、幾つか不満が有った。 不満1:やっぱり重い、デカい そもそも一眼レフにすべき…

did2さんにOpenBSDの立派な環境構築メモを書いて頂きまんた

「もちろんOpenBSDですよね、わかります。RT @did2memo: OSなど買ってきた」 という私のTwitterでのネタつぶやきが発端でdid2さんにOpenBSDの立派な環境構築メモを書いて頂きました! こちらからどうぞ↓ OpenBSDのインストール方法詳細メモ(1) - 情報科学屋…

大規模データストアでのメタデータ管理方式による違い・問題点

http://www.starpos.org/~hoshino/PukiWiki/index.php?plugin=attach&refer=Resources%2F2009&openfile=20090508-largescale-datastore-talk%40IIJ.pptxより Google: マスタサーバに集約 → bottleneck問題 Amazon: 全ノードに分散 → routing問題 一長一短だ…

cpu1にIPIがかからないずら。

現状: cpu1でクロック割り込みはかかる cpu0→cpu0のIPIはかかる cpu1→cpu0のIPIはかかる cpu1→cpu1のIPIはかからない cpu0→cpu1のIPIはかからない 何となく、割り込みコントローラへの設定などなどがしくってるような気がするけど、IMR0の値もステータスレ…

【教えてJavaのエロい人】java.nio.channels.FileLockで共有ロック出来ねぇんですけど

試しにこんなコード書いてみたんですけど、共有ロックの時にも排他ロックがかかってるようにしか見えないんすよね…。内容としては、以下の処理を順にやってるつもり: a.dat, b.datへ書き込むスレッドを4つづつ作って排他ロック、a.datだったら書込み後に30…

dynamic_pager hack on Snow Leopard

dan kogai氏のblogに書かれてたswap抑制ハックネタ(404 Blog Not Found:Mac OS X Leopard - dynamic_pager を骨抜きに)だが、ここに乗ってるMakefileをそのまま使ってコンパイルしようとするとSnow Leopardでは失敗する。 10.4 SDKが存在しないからだ。な…

IPI

Linuxを参考に、IPIのIRQをヘッダに足してみる。 Index: hub.h =================================================================== RCS file: /cvs/src/sys/arch/sgi/xbow/hub.h,v retrieving revision 1.7 diff -u -p -r1.7 hub.h --- hub.h 8 Nov 2009…

割り込みコントローラへのSMP対応コード

全く動作確認取ってないしコンパイルすら通してないけど、俺のゴーストはこれで大丈夫とささやいてるから多分大体あってるはず。 アクセスするレジスタ類はLinuxのip27のコードに合わせて、interm,imaskの配列化は以前ip30向けに実装したコードを参照。 Inde…

Exceptionはハンドル出来てるぽ

hw_cpu_hatch()で割り込み有効にしてbreakかけてddbが上がるかどうか確かめればExceptionをハンドルしてtrap出来てるか分かるという単純極まりない事実に気づいて早速試してみる。 /* * Build proper TLB refill handler trampolines. */ extern void xtlb_m…

Origin 350のセカンダリプロセッサ起動パッチを投げた

この間の起動テストコードに、CPU初期化時にセカンダリプロセッサを探してnasid, physidをstruct cpu_hwinfo secondarycpu_hwinfo[MAXCPUS]に保存し、後でこれを見に行って順に起こすというコードを足した。 でもbootcpu_hwinfoとsecondarycpu_hwinfo[]が分…

CAlias

第四回 カーネル/VM探検隊でも話した通り、Originのメモリレイアウトでは物理メモリの先頭64KBずつが各プロセッサで排他的に使えるメモリ領域として割り当てられており、実際の位置に関わらず物理アドレスは0x0になっている。 ので、Exception Vectorがこの…

少々手直ししてコミット

久しぶりにコードをコミットした。リハビリ中な気分。 +#ifdef MULTIPROCESSOR +LEAF(getcurcpu, 0) + GET_CPU_INFO(v0, v1) + jr ra +END(getcurcpu) nopで埋め忘れてる。 +#ifdef MULTIPROCESSOR +LEAF(getcurcpu, 0) + GET_CPU_INFO(v0, v1) + jr ra + no…

curcpu()の仕様を変えたい in OpenBSD/sgi

OpenBSDでカレントプロセッサのcpu_info(※per-CPUなデータを保存する構造体)のポインタを取得するにはcurcpu()というマクロを呼ぶのだが、現状のOpenBSD/sgiではこんな風になっている: #define curcpu() cpu_info[cpu_number()] で、cpu_number()はハード…

Origin 350でのセカンダリプロセッサ起動テスト/Secondary processor launch test on Origin 350

前にも書いた通り、cpu0,cpu1,cpu2の3つを認識させ、cpu1を無効なまま放置してcpu2を起動するのがファーストステップである。As I mentioned before, detect cpu0, cpu1, cpu2 and leave cpu1 disabled and launch cpu2 is the first step. Index: sgi/sgi/…

Origin 350 SMP化作業の見立て

取り敢えず、最小限の作業で手元の2コア1ノード構成が動くまでにやらねばならぬ事。・スレーブCPUの起動、LAUNCHで。 ・Exceptionテーブルコピー、uvmでの使用禁止などプライベートエリアの手当て ・取り敢えずcpu0,cpu2がオンラインでcpu1がオフラインに見…

LAUNCH on SGI Origin 350

プロセッサの検出はKLCONFIGで出来る事が分かったが、起動はどうしているのだろうか。 Linuxでは、arch/mips/sgi-ip27/ip27-smp.cにこんな事が書いてある: static void __cpuinit ip27_boot_secondary(int cpu, struct task_struct *idle) { unsigned long …

KLCONFIG on SGI Origin 350

Linuxのソースコードを読んでいくと、どうもCPU構成の情報はKLCONFIGという所から読み込んでやればいいらしい事が分かる。arch/mips/sgi-ip27/ip27-smp.cというファイルを覗くとこんな関数がある: static int do_cpumask(cnodeid_t cnode, nasid_t nasid, i…

SGI Origin 350でSMP

まだ分かってない事も多いのだが、追々調べる。 Originのコンセプト これは、ディスプレイコネクタもなく2Uである事からも分かるように、デスクサイドに置くようなタイプのマシンでなくラックに詰め込んで何らかの処理(レンダリングファーム用?それともHP…

undeadly.orgでやたらと持ち上げられた

http://undeadly.org/cgi?action=article&sid=20100405232242 I realized that Takuya is a Japanese Internet rockstar with his own twitter following. He's not your typical Japanese person. In fact, you would never guess that he was a kernel hac…

第四回 カーネル/VM探検隊を開催します

カーネルや仮想マシンなど、低レイヤー話でわいわい盛り上がるマニアックな会です。 Linux・*BSDのデベロッパーの方々にご参加頂いています。 そのうちPlan9のデベロッパーも…! 日時 / DATE :2010/05/08 13:00 to 19:00 定員 / LIMIT :150 人 会場 / PLACE …

【一発】SGI Origin 350の起動時にエラーが出る件、治ったよ。【解決】

http://nekochan.net/の人達や@shigefumiさん達にIO9やメモリ、CPUとかを一度抜いて挿し直してみろ!と言われたので、試しにやってみた。 これ、IO9ボード。SCSIとATAとイーサーネットコントローラが乗ってるっぽい。 一度抜いて挿し直してみる。あっさり治…

SGI Origin 350の中身。

SGI Origin 350が我が家に来た件

TheoがSGI Origin 350を私に買い与えてくださいました。こんな子: 起動音: http://www.twitvid.com/DF792だがしかし、正常に起動してこない。もともとジャンクに近い扱いで大幅に安くしてもらったものなので、どこか壊れているかもしれない…。 どうしたも…

miniupnpc for JavaとJNAeratorのお話

miniupnpcというCなUPnPのライブラリがあって、これは結構多くのルータをサポートしてて色々なオープンソースアプリで(もしかしたら商用アプリでも)用いられているんだけれど、Javaバインディングがない。 どーせ小さなコードなので、JNIするのもそんな面…

SwingLogger for slf4j

Genkidamaに使ってたLoggerからの出力をねじ曲げてSwingに表示する部分をslf4j向けのjarにしてgithubで公開しました。要するに、こういうコードを書くと: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.impl.LogWindow; publ…