Barbarism begins at internet:2007年12月分

2007/12/03(Mon)

[NetBSD] kernel/37462

pcmciaなモデムカードを刺してるとttyflag(8)とかpppd(8)でハングアップする件
調べるのめんどくさいのでsend-prだけしとこうと思ったら先にPRきたな。

2007/12/05(Wed)

昨日

そういや今張ってるベースの弦、どんだけ交換してないんだっけ?
もしかしてJames Jamersonのよに長期熟成を目指すチャーンス!?

んなわけにもいかんので会社帰りに楽器屋でDRの45-105買ってきた。
ついでにWarwickの Streamer Jazzmanを試奏してきた。
いろんな音出せるねこれ。

いま使ってるのは同じStreamerでも LXの方なんだけど
買った当時(1998年頃) Stage Iにしようか迷ったんだよな、結局

という判断でコストダウン版のLXにしちまったのだか、前者と比較して
アタック強めの音になりがちで、曲によっては弾きづらく感じる時もある。

そいや過去所有したベースの中でスルーネックといえば
STEINBERGER XL2(カーボングラファイト一体成型)



…のパチモノ、SPACEBERGER(こっちは木製)だけだな。
あれは野球バット代わりに便利だった(ぉ

パチモノといえば、昔イケベで売ってたRickenbackerモドキは
本物より「らしい」ので、あの音が欲しい時に重宝したな。
本物買った友人が複雑な顔をしてたのを思い出す。
バランサーノブが省略されてる中途半端なコピー具合もいい味出してた。

2007/12/07(Fri)

昨日

腹壊して会社休んでた、ノロ?

VOCALOID2、 DX-7(ミク)の次は黒歴史SY-77/99あたりかと思ったら
EOSシリーズの B200(リン) / B500(レン)ですか、懐かしいなぁおい。
サスペンダーあたりに YS200も混じってる風味。
とすると金髪はTMN小室とAXS浅倉をイメージで間違いな(以下略

しかしDDR2安いよな、DDRな俺涙目。

2007/12/10(Mon)

[pcc] pcc(1) INCR/DECR issue その1

_Bool type bug( 差分)の話の続きだけど、_Boolだけの問題じゃないのでSubject変更。

pass2は

int x, y, z;
main(void)
{
	/*
	 * | |(B)| |(A+=)| |
	 * |x| = |y| +=  |z|
	 */
	x = y += z;
}
0xbb901294) =, int, 0x0, 0x8081828 … (B)
    0xbb901104) NAME, 0, 0, int, 0x0, 0x8081828
    0xbb901200) +=, int, 0x0, 0x8081828 … (A+=)
        0xbb90122c) NAME, 0, 0, int, 0x0, 0x8081828
        0xbb901080) NAME, 0, 0, int, 0x0, 0x8081828
movl y,%eax
addl z,%eax (A+)
movl %eax,y (A=)
movl %eax,x (B)

とツリーの下の方からアセンブラを生成してくんだけど
現在までのpatchをあてた状態のpccは、INCR/DECRの場合
int x, y, z;
main(void)
{
	/*
	 * | |(C)| |(B+=)| |(A12)|
	 * |x| = |y| +=  |z| ++  |
	 */
        x = y += z++;
}
0xbb9012ec) =, int, 0x0, 0x8081828 … (C)
    0xbb901104) NAME, 0, 0, int, 0x0, 0x8081828
    0xbb9012c0) +=, int, 0x0, 0x8081828 … (B+=)
        0xbb90122c) NAME, 0, 0, int, 0x0, 0x8081828
        0xbb901294) ++, int, 0x0, 0x8081828 … (A12)
            0xbb901080) NAME, 0, 0, int, 0x0, 0x8081828
            0xbb901200) ICON, 1, 0, int, 0x0, 0x8081828
というツリーを吐くので、アセンブラ生成時に
movl y, %eax
movl z, %edx
addl %edx,%eax (B+)
movl %eax,y (B=)
addl $1,%edx (A1)
movl %edx,y (A2)
movl %eax,x (C)
と(B+=)と(A12)の順序を逆にしないとならないんだよな。

INCR/DECRの場合のツリー構造を見直して、逆順が発生しないようにできないもんかね。

Not Allowed NEW in PRE.

週末

体調悪いので修理上がりのカメラで写真撮りにいくのはキャンセルして
おうちでモータウンのCD流しながらベース弾いてた。
Jamerson奏法用にプレベ一本欲しくなってきたぞ。

[OpenBSD] wsconscfg(8)

chvtが無いネタ。
NetBSDやOpenBSDのwscons(4)の場合

$ /usr/sbin/wsconscfg -s 1

とゆーものがありますよ。

と思ったら、OpenBSDのwsconscfg(8)は-sスイッチないのな。

#include <sys/ioctl.h>
#include <fcntl.h>
#include <dev/wscons/wsdisplay_usl_io.h>
int
main(void)
{
    int fd;
    fd = open("/dev/ttyCcfg", O_RDWR, 0);
    ioctl(fd, VT_ACTIVATE, 2);
}

というコードをttyC0から実行すると、ちゃんとttyC1に切り替わるので
wscons(4)自体の機能には不足は無い模様。
NetBSDのwsconscfg.cの最新版をOpenBSDにパチってくればよいかと。

2007/12/11(Tue)

[pcc] pcc(1) INCR/DECR issue その2

昨日の続き。

$ cat >test.c
int x, y, z;
main(void)
{
	x = y += z++;
}
^D

$ cpp test.c | /usr/pkg/libexec/ccom -Zb
...
0xbb9012ec) =, int, REG %eax, SU= 0(@REG,,,,)
    0xbb901104) NAME x, int, REG %eax, SU= 0(@REG,,,,)
    0xbb9012c0) =, int, REG %eax, SU= 0(@REG,,,,)
        0xbb90122c) NAME y, int, REG %eax, SU= 0(@REG,,,,)
        0xbb901344) +, int, REG %eax, SU= 0(@REG,,,,)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【2】
            0xbb901318) NAME y, int, REG %eax, SU= 0(@REG,,,,)
            0xbb901294) ++, int, REG %eax, SU= 0(@REG,,,,)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 【1】
                0xbb901080) NAME z, int, REG %eax, SU= 0(@REG,,,,)
                0xbb901200) ICON $1, int, REG %eax, SU= 0(@REG,,,,)
...

以前のパッチで

a += b

という式は

a = a + b

のように書き換えられる事に注意。

まずはmip/reader.cのgeninsn()での処理。
INCR/DECRが見つかった場合、すなわち【1】の"++"nodeを処理する個所では

@@ -470,6 +472,8 @@
 		p->n_su = 0;
 		break;
 
+	case INCR:
+	case DECR:
 	case FORCE: /* XXX needed? */
 		geninsn(p->n_left, INREGS);
 		p->n_su = 0; /* su calculations traverse left */

として左node(=z)をレジスタ(=%eax)に割当ててしまえばOK(zの値を1増分するのは後回し)。

そうすると次はツリーの上位、つまり【2】の"+"nodeの処理に移るわけだけど
このPLUSの右ノードには、これまでNAME(変数)やICON(定数)、REG/OREG(レジスタ)のみが
許可されていたので、ここにいきなりINCR(op=59)が飛び込んでくると

test.c, line 4: compiler error: illegal address, op 59, node 0xbb901294

というエラーが出て落ちてしまう。

このエラーの回避は簡単で、arch/i386/local2.cのadrput()で

@@ -723,7 +724,7 @@
 	int r;
 	/* output an address, with offsets, from p */

-	if (p->n_op == FLD)
+	if (p->n_op == FLD || p->n_op == INCR || p->n_op == DECR)
 		p = p->n_left;

 	switch (p->n_op) {

として、PLUSの右ノードがINCR/DECRだった場合には、INCR/DECRの
左ノード(=z)が割当てられてるレジスタ(=%eax)を使うように修正するだけ。

ここまでの修正を取り込んでアセンブラ吐かせてみると

movl z,%eax
movl y,%edx
leal (%edx,%eax),%eax
movl %eax,y
movl %eax,x

うん、あとは【1】でペンディングにしていたzを1増分する処理を
【2】が終わった後に挿入してやればいいだけっぽいですな。

というわけでツリー構成を変更するまでもない気がしてきたぞ。

movl y,%eax
movl z,%edx

とならないとダメだ、ということはgeninsn()でのINCR/DECRの処理は見直しだな。

2007/12/12(Wed)

[pcc] pcc(1) INCR/DECR issue その3

うーむ昨日の修正はあれでOKな気がしてきた。
各ノードに割当てられてるレジスタが今のままじゃダメなんだろう。

0xbb9012ec) =, int, REG %eax, SU= 0(@REG,,,,)
    0xbb901104) NAME x, int, REG %eax, SU= 0(@REG,,,,)
    0xbb9012c0) =, int, REG %eax, SU= 0(@REG,,,,)
        0xbb90122c) NAME y, int, REG %eax, SU= 0(@REG,,,,)
        0xbb901344) +, int, REG %eax, SU= 0(@REG,,,,)
            0xbb901318) NAME y, int, REG %eax, SU= 0(@REG,,,,)
            0xbb901294) ++, int, REG %eax, SU= 0(@REG,,,,)
                0xbb901080) NAME z, int, REG %eax, SU= 0(@REG,,,,)
                0xbb901200) ICON $1, int, REG %eax, SU= 0(@REG,,,,)

↓とでもなればいいのかな。

0xbb9012ec) =, int, REG %edx, SU= 0(@REG,,,,)
    0xbb901104) NAME x, int, REG %edx, SU= 0(@REG,,,,)
    0xbb9012c0) =, int, REG %edx, SU= 0(@REG,,,,)
        0xbb90122c) NAME y, int, REG %edx, SU= 0(@REG,,,,)
        0xbb901344) +, int, REG %edx, SU= 0(@REG,,,,)
            0xbb901318) NAME y, int, REG %edx, SU= 0(@REG,,,,)
            0xbb901294) ++, int, REG %eax, SU= 0(@REG,,,,)
                0xbb901080) NAME z, int, REG %eax, SU= 0(@REG,,,,)
                0xbb901200) ICON $1, int, REG %eax, SU= 0(@REG,,,,)

うへーregs.c読みたくないなぁ。

しかしこの問題まだまだ解決まで時間かかりそうなので

の2つに分割して、前者だけ先にpcc-listに投げちまった方がいいかもな。

2007/12/13(Thu)

localedef

Darwinのlocaledef(adv_cmdsにある)ってperl scriptなのなw
昔FreeBSDのC99 Projectがらみでasmodai氏?がCで書きかけの
localedefをどっかで見た記憶があるんだが、あれどうなったんだろ *1

*1:オマエモナー

2007/12/21(Fri)

今週

めっきり酒に弱くなった。

最近買ったものとか

キャパも使ってたコダクローム、12/20で日本国内現像終了でしたな。
今後は海外現像(米国Dwayne's Photo)のみ。
Capa In Colorで半世紀経っても色褪せない耐退色性能を証明した
外式リバーサル唯一の生き残りだけんど、生産もいつまで続くことやら。
So mama don't take my Kodachrome away~ by Paul Simon

久々にコンデジ売場覗いてみたけど、光学ファインダーってもう絶滅種危惧種なのな。
まあコストとサイズで妥協しまくった節穴ファインダーなぞ無くておkではある。
電子式ファインダー(EVFってんだ)はパラドックスもないし面白いとは思うんだが
発色+解像度+速度がまだまだで違和感あるな。

デジイチなんかもそうだけど、どれもこれも液晶画面が背部にあるって
鼻アブラ採集用テンプレートかと思うくらい邪魔だよな。
いっそウエストレベルファインダー風に上部につけりゃいいのに。
んで 二眼レフ風のデザインにすりゃ、ライブビュー撮影姿もサマになりそうなもんだが。

2007/12/25(Tue)

We Gets Request

Oscar Peterson死去とな、R.I.P。
そいや Something for Lester/ Ray Brownを引越しのドサクサで紛失したままだ、買ってこよう。

[NetBSD] 4.99.45

src/dev/ic/vga.cのvga_is_console()の中のstrncmp()でkernel panic。
どっかで壊してるかalldevsなTAILQにゴミ入ったか、はて。

2007/12/27(Thu)

いろいろ

本業、スケジュールがここ2週間で2週間遅延する(笑)とゆー絶賛炎上中状態なのだが
遅延理由のあまりのアホ臭さにもはやリカバリする気なし。
正月は休むよ。

これはいい クリスマスキャンドル
大昔東京湾13号埋立地でサターンIBを見たはずなのだがヨーマッチトゥーヤーンで記憶にねぇ。

CASIO VL-1(VL-TONE) emulatorなんてあるのね。

と後のオールインワンシンセの登場を予感させる(かもしれない)一台。
うちにある実物はもう大分前に壊れて音が出ないのだが
消防の頃こいつとラジカセ2台で多重録音してますた、すげ懐かしい。

2007/12/29(Sat)

[NetBSD] kern/37462

うちのThinkPad s30とNetIndex AX530INでも4.99.32になったくらいの頃から
pccbb.cのtsleep()が戻ってこないのだけども、その先を追ってみると
mi_switch(9) -> cpu_switchto(9)でなんか起きてるもより。

あと別件だが4.99.45、vga_is_console()内のstrncmp(3)で死ぬ問題は直ったのだが
最近のacpi(4)祭のせいか、勝手に液晶のバックライトが消え再点灯できんので困る。

2007/12/30(Sun)

[NetBSD] kern/37462 その2

いつの時点でハングするようになったかを調べると
-D2007.10.08.15.00.00 と -D2007.10.09.15.00.00 の間のようなので
vmlocking枝のmergeが原因みたいね。

--- 20071008.ident	2007-12-30 23:23:50.000000000 +0900
+++ 20071009.ident	2007-12-30 23:24:12.000000000 +0900
@@ -1,4 +1,4 @@
-netbsd.20071008:
+netbsd.20071009:
      $NetBSD: param.c,v 1.52 2007/05/17 14:51:37 yamt Exp $
      $NetBSD: arc4.c,v 1.6 2005/12/11 12:20:48 christos Exp $
      $NetBSD: des_ecb.c,v 1.9 2005/12/11 12:20:52 christos Exp $
@@ -38,7 +38,7 @@
      $NetBSD: hci_link.c,v 1.14 2007/09/16 19:59:30 plunky Exp $
      $NetBSD: hci_misc.c,v 1.3 2007/09/16 19:59:30 plunky Exp $
      $NetBSD: hci_socket.c,v 1.11 2007/07/19 20:48:51 plunky Exp $
-     $NetBSD: hci_unit.c,v 1.4 2007/03/30 20:47:03 plunky Exp $
+     $NetBSD: hci_unit.c,v 1.5 2007/10/08 16:18:05 ad Exp $
      $NetBSD: l2cap_lower.c,v 1.6 2007/04/21 06:15:23 plunky Exp $
      $NetBSD: l2cap_misc.c,v 1.4 2007/07/09 21:11:10 ad Exp $
      $NetBSD: l2cap_signal.c,v 1.8 2007/05/16 18:34:49 plunky Exp $
@@ -94,7 +94,7 @@
      $NetBSD: db_access.c,v 1.18 2007/02/21 22:59:56 thorpej Exp $
      $NetBSD: db_aout.c,v 1.41 2007/02/22 06:41:00 thorpej Exp $
      $NetBSD: db_break.c,v 1.26 2007/02/22 06:41:00 thorpej Exp $
-     $NetBSD: db_command.c,v 1.105 2007/10/02 08:47:26 martin Exp $
+     $NetBSD: db_command.c,v 1.106 2007/10/08 15:06:26 martin Exp $
      $NetBSD: db_examine.c,v 1.32 2007/02/22 06:41:00 thorpej Exp $
      $NetBSD: db_expr.c,v 1.15 2007/02/22 06:41:01 thorpej Exp $
      $NetBSD: db_input.c,v 1.22 2007/02/22 06:41:01 thorpej Exp $
@@ -175,7 +175,7 @@
      $NetBSD: smc91cxx.c,v 1.62 2007/09/01 07:32:27 dyoung Exp $
      $NetBSD: mb86960.c,v 1.67 2007/09/01 07:32:27 dyoung Exp $
      $NetBSD: ne2000.c,v 1.54 2007/03/04 06:01:59 christos Exp $
-     $NetBSD: com.c,v 1.262 2007/08/16 08:56:49 martin Exp $
+     $NetBSD: com.c,v 1.263 2007/10/08 16:50:45 ad Exp $
      $NetBSD: pckbc.c,v 1.37 2007/07/09 21:00:38 ad Exp $
      $NetBSD: attimer.c,v 1.3 2007/09/10 10:35:53 cube Exp $
      $NetBSD: ac97.c,v 1.86 2007/02/21 22:59:59 thorpej Exp $
@@ -198,21 +198,21 @@
      $NetBSD: ehci.c,v 1.124 2007/08/15 04:00:33 kiyohara Exp $
      $NetBSD: sl811hs.c,v 1.14 2007/08/24 01:49:08 kiyohara Exp $
      $NetBSD: hid.c,v 1.27 2007/09/08 07:46:13 plunky Exp $
-     $NetBSD: ffs_alloc.c,v 1.100 2007/08/09 07:34:28 hannken Exp $
-     $NetBSD: ffs_balloc.c,v 1.45 2007/06/29 15:34:59 pooka Exp $
+     $NetBSD: ffs_alloc.c,v 1.101 2007/10/08 18:01:28 ad Exp $
+     $NetBSD: ffs_balloc.c,v 1.46 2007/10/08 18:01:28 ad Exp $
      $NetBSD: ffs_bswap.c,v 1.32 2005/12/11 12:25:25 christos Exp $
-     $NetBSD: ffs_inode.c,v 1.88 2007/07/10 09:50:07 hannken Exp $
-     $NetBSD: ffs_snapshot.c,v 1.51 2007/10/07 13:39:05 hannken Exp $
-     $NetBSD: ffs_softdep.c,v 1.97 2007/09/01 23:40:26 pooka Exp $
+     $NetBSD: ffs_inode.c,v 1.89 2007/10/08 18:01:28 ad Exp $
+     $NetBSD: ffs_snapshot.c,v 1.52 2007/10/08 18:01:28 ad Exp $
+     $NetBSD: ffs_softdep.c,v 1.98 2007/10/08 18:01:29 ad Exp $
      $NetBSD: ffs_subr.c,v 1.44 2007/01/29 01:52:46 hubertf Exp $
      $NetBSD: ffs_tables.c,v 1.9 2005/12/11 12:25:25 christos Exp $
-     $NetBSD: ffs_vfsops.c,v 1.208 2007/08/09 07:34:28 hannken Exp $
+     $NetBSD: ffs_vfsops.c,v 1.209 2007/10/08 18:01:29 ad Exp $
      $NetBSD: ffs_vnops.c,v 1.91 2007/08/21 09:27:33 hannken Exp $
-     $NetBSD: ufs_readwrite.c,v 1.82 2007/09/24 16:50:58 pooka Exp $
-     $NetBSD: ufs_bmap.c,v 1.45 2007/05/17 07:26:22 hannken Exp $
+     $NetBSD: ufs_readwrite.c,v 1.83 2007/10/08 18:01:31 ad Exp $
+     $NetBSD: ufs_bmap.c,v 1.46 2007/10/08 18:01:31 ad Exp $
      $NetBSD: ufs_ihash.c,v 1.23 2007/05/28 23:42:56 ad Exp $
      $NetBSD: ufs_inode.c,v 1.68 2007/09/25 15:13:14 pooka Exp $
-     $NetBSD: ufs_lookup.c,v 1.92 2007/09/25 15:13:14 pooka Exp $
+     $NetBSD: ufs_lookup.c,v 1.93 2007/10/08 18:01:31 ad Exp $
      $NetBSD: ufs_vfsops.c,v 1.34 2007/06/30 09:37:54 pooka Exp $
      $NetBSD: ufs_vnops.c,v 1.156 2007/08/09 09:22:34 hannken Exp $
      $NetBSD: uvm_amap.c,v 1.82 2007/07/21 19:21:53 ad Exp $
@@ -228,7 +228,7 @@
      $NetBSD: uvm_loan.c,v 1.66 2007/07/21 19:21:54 ad Exp $
      $NetBSD: uvm_map.c,v 1.240 2007/08/20 13:34:52 ad Exp $
      $NetBSD: uvm_meter.c,v 1.47 2007/02/26 09:20:54 yamt Exp $
-     $NetBSD: uvm_mmap.c,v 1.115 2007/09/23 16:05:40 yamt Exp $
+     $NetBSD: uvm_mmap.c,v 1.116 2007/10/08 15:12:11 ad Exp $
      $NetBSD: uvm_mremap.c,v 1.7 2007/08/08 11:08:18 drochner Exp $
      $NetBSD: uvm_object.c,v 1.3 2007/02/17 20:45:36 rmind Exp $
      $NetBSD: uvm_page.c,v 1.125 2007/10/08 14:14:55 ad Exp $
@@ -247,19 +247,19 @@
      $NetBSD: secmodel_bsd44_suser.c,v 1.37 2007/02/21 23:00:09 thorpej Exp $
      $NetBSD: secmodel_bsd44_securelevel.c,v 1.30 2007/07/09 21:11:31 ad Exp $
      $NetBSD: auconv.c,v 1.20 2007/03/01 17:31:35 thorpej Exp $
-     $NetBSD: audio.c,v 1.223 2007/08/14 21:34:03 uwe Exp $
+     $NetBSD: audio.c,v 1.224 2007/10/08 16:18:02 ad Exp $
      $NetBSD: aurateconv.c,v 1.17 2006/11/16 01:32:44 christos Exp $
-     $NetBSD: cgd.c,v 1.46 2007/07/29 12:50:18 ad Exp $
+     $NetBSD: cgd.c,v 1.47 2007/10/08 16:41:10 ad Exp $
      $NetBSD: cgd_crypto.c,v 1.7 2007/01/21 23:00:08 cbiere Exp $
      $NetBSD: clock_subr.c,v 1.12 2005/12/11 12:20:53 christos Exp $
      $NetBSD: clockctl.c,v 1.22 2007/05/12 20:27:13 dsl Exp $
      $NetBSD: dksubr.c,v 1.31 2007/07/29 12:50:18 ad Exp $
-     $NetBSD: dk.c,v 1.28 2007/07/29 12:50:20 ad Exp $
+     $NetBSD: dk.c,v 1.29 2007/10/08 16:41:11 ad Exp $
      $NetBSD: dkwedge_bsdlabel.c,v 1.14 2007/06/09 02:10:30 dyoung Exp $
      $NetBSD: dkwedge_gpt.c,v 1.6 2007/03/04 06:01:45 christos Exp $
      $NetBSD: dkwedge_mbr.c,v 1.5 2006/08/13 19:17:11 martin Exp $
      $NetBSD: firmload.c,v 1.7 2007/01/14 10:56:34 is Exp $
-     $NetBSD: midi.c,v 1.55 2007/07/09 21:00:29 ad Exp $
+     $NetBSD: midi.c,v 1.56 2007/10/08 16:18:02 ad Exp $
      $NetBSD: midictl.c,v 1.4 2006/11/16 01:32:45 christos Exp $
      $NetBSD: midisyn.c,v 1.21 2007/03/04 06:01:42 christos Exp $
      $NetBSD: mm.c,v 1.10 2007/03/04 06:01:43 christos Exp $
@@ -267,7 +267,7 @@
      $NetBSD: radio.c,v 1.20 2007/03/04 06:01:43 christos Exp $
      $NetBSD: rnd.c,v 1.63 2007/07/09 21:00:29 ad Exp $
      $NetBSD: rndpool.c,v 1.19 2005/12/11 12:20:53 christos Exp $
-     $NetBSD: sequencer.c,v 1.41 2007/07/09 21:00:29 ad Exp $
+     $NetBSD: sequencer.c,v 1.42 2007/10/08 16:18:02 ad Exp $
      $NetBSD: bufq_disksort.c,v 1.7 2007/02/01 00:36:37 cbiere Exp $
      $NetBSD: bufq_fcfs.c,v 1.6 2005/12/11 12:24:29 christos Exp $
      $NetBSD: core_elf32.c,v 1.31 2007/07/09 21:10:50 ad Exp $
@@ -278,27 +278,27 @@
      $NetBSD: exec_elf32.c,v 1.124 2007/06/24 20:35:37 christos Exp $
      $NetBSD: exec_script.c,v 1.57 2007/04/22 08:30:00 dsl Exp $
      $NetBSD: exec_subr.c,v 1.54 2007/07/27 08:26:38 pooka Exp $
-     $NetBSD: init_main.c,v 1.318 2007/10/01 22:05:15 martin Exp $
-     $NetBSD: init_sysctl.c,v 1.106 2007/09/28 21:25:21 joerg Exp $
+     $NetBSD: init_main.c,v 1.320 2007/10/08 20:06:18 ad Exp $
+     $NetBSD: init_sysctl.c,v 1.107 2007/10/08 18:09:37 ad Exp $
      $NetBSD: init_sysent.c,v 1.198 2007/09/07 18:58:46 rmind Exp $
      $NetBSD: kern_acct.c,v 1.77 2007/09/29 12:22:30 dsl Exp $
      $NetBSD: kern_auth.c,v 1.52 2007/09/23 16:00:08 yamt Exp $
      $NetBSD: kern_clock.c,v 1.113 2007/10/04 12:55:48 ad Exp $
      $NetBSD: kern_condvar.c,v 1.13 2007/10/08 14:07:08 ad Exp $
      $NetBSD: kern_core.c,v 1.6 2007/09/22 13:34:23 dsl Exp $
-     $NetBSD: kern_cpu.c,v 1.6 2007/08/18 00:21:10 ad Exp $
-     $NetBSD: kern_descrip.c,v 1.160 2007/09/07 18:56:08 rmind Exp $
-     $NetBSD: kern_event.c,v 1.40 2007/07/21 19:23:03 ad Exp $
+     $NetBSD: kern_cpu.c,v 1.8 2007/10/08 15:51:03 ad Exp $
+     $NetBSD: kern_descrip.c,v 1.161 2007/10/08 15:12:07 ad Exp $
+     $NetBSD: kern_event.c,v 1.41 2007/10/08 15:12:07 ad Exp $
      $NetBSD: kern_exec.c,v 1.249 2007/10/02 12:01:17 pooka Exp $
      $NetBSD: kern_exit.c,v 1.187 2007/09/06 23:58:56 ad Exp $
      $NetBSD: kern_fork.c,v 1.144 2007/09/29 12:22:30 dsl Exp $
-     $NetBSD: kern_idle.c,v 1.5 2007/10/01 22:14:23 ad Exp $
+     $NetBSD: kern_idle.c,v 1.6 2007/10/08 20:06:19 ad Exp $
      $NetBSD: kern_kthread.c,v 1.18 2007/07/10 23:06:56 ad Exp $
-     $NetBSD: kern_ktrace.c,v 1.126 2007/08/27 13:33:45 dsl Exp $
+     $NetBSD: kern_ktrace.c,v 1.128 2007/10/08 15:13:12 ad Exp $
      $NetBSD: kern_ksyms.c,v 1.33 2007/04/02 16:44:44 christos Exp $
      $NetBSD: kern_lkm.c,v 1.97 2007/03/04 06:03:05 christos Exp $
      $NetBSD: kern_lock.c,v 1.120 2007/09/17 21:33:34 ad Exp $
-     $NetBSD: kern_lwp.c,v 1.71 2007/09/25 21:38:56 ad Exp $
+     $NetBSD: kern_lwp.c,v 1.72 2007/10/08 18:11:11 ad Exp $
      $NetBSD: kern_malloc.c,v 1.111 2007/04/19 11:03:44 yamt Exp $
      $NetBSD: kern_mutex.c,v 1.18 2007/09/21 19:14:12 dsl Exp $
      $NetBSD: kern_ntptime.c,v 1.43 2007/03/04 06:03:05 christos Exp $
@@ -306,28 +306,29 @@
      $NetBSD: kern_proc.c,v 1.117 2007/09/29 12:22:31 dsl Exp $
      $NetBSD: kern_prot.c,v 1.104 2007/06/30 21:31:41 dsl Exp $
      $NetBSD: kern_ras.c,v 1.20 2007/08/15 12:07:33 ad Exp $
-     $NetBSD: kern_resource.c,v 1.122 2007/09/29 12:22:31 dsl Exp $
+     $NetBSD: kern_resource.c,v 1.123 2007/10/08 20:06:19 ad Exp $
      $NetBSD: kern_rwlock.c,v 1.10 2007/09/21 19:14:12 dsl Exp $
      $NetBSD: kern_sig.c,v 1.257 2007/10/03 13:21:22 ad Exp $
      $NetBSD: kern_sleepq.c,v 1.14 2007/09/06 23:59:01 ad Exp $
+     $NetBSD: kern_softint.c,v 1.3 2007/10/08 20:06:19 ad Exp $
      $NetBSD: kern_stub.c,v 1.4 2007/08/27 13:33:45 dsl Exp $
      $NetBSD: kern_subr.c,v 1.164 2007/08/15 12:07:34 ad Exp $
-     $NetBSD: kern_synch.c,v 1.198 2007/10/03 11:20:09 ad Exp $
+     $NetBSD: kern_synch.c,v 1.199 2007/10/08 20:06:19 ad Exp $
      $NetBSD: kern_sysctl.c,v 1.210 2007/08/15 12:07:34 ad Exp $
      $NetBSD: kern_tc.c,v 1.20 2007/08/17 21:20:24 ad Exp $
-     $NetBSD: kern_time.c,v 1.128 2007/08/09 07:36:19 pooka Exp $
-     $NetBSD: kern_timeout.c,v 1.26 2007/08/01 23:23:41 ad Exp $
+     $NetBSD: kern_time.c,v 1.129 2007/10/08 20:06:19 ad Exp $
+     $NetBSD: kern_timeout.c,v 1.27 2007/10/08 16:18:04 ad Exp $
      $NetBSD: kern_turnstile.c,v 1.10 2007/07/09 21:10:54 ad Exp $
      $NetBSD: kern_todr.c,v 1.24 2006/09/24 18:24:55 peter Exp $
      $NetBSD: kern_uuid.c,v 1.11 2007/08/26 23:07:16 dyoung Exp $
      $NetBSD: kern_xxx.c,v 1.65 2007/02/09 21:55:31 ad Exp $
-     $NetBSD: sched_4bsd.c,v 1.4 2007/08/04 11:03:02 ad Exp $
+     $NetBSD: sched_4bsd.c,v 1.5 2007/10/08 20:06:19 ad Exp $
      $NetBSD: subr_autoconf.c,v 1.120 2007/09/24 18:47:56 joerg Exp $
      $NetBSD: subr_blist.c,v 1.9 2006/01/20 14:19:40 yamt Exp $
      $NetBSD: subr_bufq.c,v 1.13 2007/07/29 12:15:45 ad Exp $
      $NetBSD: subr_callback.c,v 1.5 2007/07/09 21:10:55 ad Exp $
-     $NetBSD: subr_devsw.c,v 1.11 2007/07/09 21:10:55 ad Exp $
-     $NetBSD: subr_disk.c,v 1.88 2007/07/29 12:15:45 ad Exp $
+     $NetBSD: subr_devsw.c,v 1.12 2007/10/08 16:54:09 ad Exp $
+     $NetBSD: subr_disk.c,v 1.89 2007/10/08 16:41:15 ad Exp $
      $NetBSD: subr_iostat.c,v 1.13 2007/02/09 21:55:31 ad Exp $
      $NetBSD: subr_evcnt.c,v 1.4 2005/12/11 12:24:30 christos Exp $
      $NetBSD: subr_extent.c,v 1.68 2007/07/10 22:58:54 ad Exp $
@@ -345,8 +346,9 @@
      $NetBSD: subr_time.c,v 1.1 2007/08/09 07:36:19 pooka Exp $
      $NetBSD: subr_vmem.c,v 1.32 2007/07/12 20:39:56 rmind Exp $
      $NetBSD: subr_workqueue.c,v 1.21 2007/08/07 12:50:26 yamt Exp $
+     $NetBSD: subr_xcall.c,v 1.3 2007/10/08 17:26:40 ad Exp $
      $NetBSD: sys_aio.c,v 1.7 2007/09/01 23:40:23 pooka Exp $
-     $NetBSD: sys_generic.c,v 1.107 2007/09/25 13:53:11 ad Exp $
+     $NetBSD: sys_generic.c,v 1.108 2007/10/08 15:12:08 ad Exp $
      $NetBSD: sys_mqueue.c,v 1.2 2007/09/21 01:40:10 ad Exp $
      $NetBSD: sys_lwp.c,v 1.26 2007/09/06 23:59:01 ad Exp $
      $NetBSD: sys_pipe.c,v 1.86 2007/09/25 13:53:31 ad Exp $
@@ -356,7 +358,7 @@
      $NetBSD: sys_sched.c,v 1.3 2007/02/09 21:55:31 ad Exp $
      $NetBSD: sys_socket.c,v 1.51 2007/07/09 21:10:56 ad Exp $
      $NetBSD: sysv_ipc.c,v 1.20 2007/02/09 21:55:31 ad Exp $
-     $NetBSD: sysv_msg.c,v 1.49 2007/03/13 03:43:54 ad Exp $
+     $NetBSD: sysv_msg.c,v 1.50 2007/10/09 03:27:37 rmind Exp $
      $NetBSD: sysv_sem.c,v 1.73 2007/08/17 23:46:34 ad Exp $
      $NetBSD: sysv_shm.c,v 1.100 2007/04/29 20:23:36 msaitoh Exp $
      $NetBSD: tty.c,v 1.198 2007/09/25 14:04:07 ad Exp $
@@ -375,19 +377,19 @@
      $NetBSD: uipc_socket.c,v 1.144 2007/10/05 02:40:25 dyoung Exp $
      $NetBSD: uipc_socket2.c,v 1.86 2007/09/25 14:04:07 ad Exp $
      $NetBSD: uipc_syscalls.c,v 1.122 2007/10/05 02:34:58 dyoung Exp $
-     $NetBSD: uipc_usrreq.c,v 1.100 2007/09/19 06:23:53 dyoung Exp $
-     $NetBSD: vfs_bio.c,v 1.178 2007/09/16 15:17:36 dsl Exp $
+     $NetBSD: uipc_usrreq.c,v 1.101 2007/10/08 15:12:08 ad Exp $
+     $NetBSD: vfs_bio.c,v 1.179 2007/10/08 18:04:05 ad Exp $
      $NetBSD: vfs_cache.c,v 1.70 2007/07/09 21:10:57 ad Exp $
-     $NetBSD: vfs_getcwd.c,v 1.35 2007/02/09 21:55:32 ad Exp $
+     $NetBSD: vfs_getcwd.c,v 1.36 2007/10/08 15:12:08 ad Exp $
      $NetBSD: vfs_hooks.c,v 1.2 2005/12/11 12:24:30 christos Exp $
      $NetBSD: vfs_init.c,v 1.34 2007/07/27 14:25:21 pooka Exp $
      $NetBSD: vfs_lockf.c,v 1.60 2007/07/09 21:10:57 ad Exp $
      $NetBSD: vfs_lookup.c,v 1.97 2007/08/15 12:07:34 ad Exp $
      $NetBSD: vfs_subr.c,v 1.301 2007/10/07 13:39:03 hannken Exp $
-     $NetBSD: vfs_subr2.c,v 1.4 2007/08/14 13:51:31 pooka Exp $
-     $NetBSD: vfs_syscalls.c,v 1.327 2007/09/01 23:40:23 pooka Exp $
+     $NetBSD: vfs_subr2.c,v 1.6 2007/10/08 18:04:05 ad Exp $
+     $NetBSD: vfs_syscalls.c,v 1.328 2007/10/08 15:12:09 ad Exp $
      $NetBSD: vfs_trans.c,v 1.14 2007/10/08 09:09:47 hannken Exp $
-     $NetBSD: vfs_vnops.c,v 1.141 2007/10/07 13:39:04 hannken Exp $
+     $NetBSD: vfs_vnops.c,v 1.142 2007/10/08 15:12:09 ad Exp $
      $NetBSD: vfs_xattr.c,v 1.12 2007/04/03 16:11:31 hannken Exp $
      $NetBSD: vnode_if.c,v 1.70 2007/07/27 08:27:38 pooka Exp $
      $NetBSD: dead_vnops.c,v 1.44 2007/07/29 13:31:11 ad Exp $
@@ -396,19 +398,19 @@
      $NetBSD: layer_subr.c,v 1.21 2006/12/09 16:11:52 chs Exp $
      $NetBSD: layer_vfsops.c,v 1.26 2006/11/16 01:33:38 christos Exp $
      $NetBSD: layer_vnops.c,v 1.31 2007/04/16 08:10:58 enami Exp $
-     $NetBSD: spec_vnops.c,v 1.106 2007/10/07 13:39:04 hannken Exp $
+     $NetBSD: spec_vnops.c,v 1.107 2007/10/08 18:04:05 ad Exp $
      $NetBSD: sync_subr.c,v 1.30 2007/09/01 23:40:21 pooka Exp $
      $NetBSD: sync_vnops.c,v 1.17 2007/04/07 15:08:12 hannken Exp $
      $NetBSD: bpf.c,v 1.130 2007/07/11 21:26:53 xtraeme Exp $
      $NetBSD: bpf_filter.c,v 1.33 2007/01/27 07:16:01 cbiere Exp $
      $NetBSD: if.c,v 1.201 2007/09/13 18:54:57 gdt Exp $
-     $NetBSD: if_ethersubr.c,v 1.155 2007/09/19 05:25:33 dyoung Exp $
-     $NetBSD: if_gif.c,v 1.71 2007/09/16 18:09:51 dyoung Exp $
+     $NetBSD: if_ethersubr.c,v 1.156 2007/10/08 16:18:04 ad Exp $
+     $NetBSD: if_gif.c,v 1.72 2007/10/08 16:18:05 ad Exp $
      $NetBSD: if_ieee1394subr.c,v 1.36 2007/08/30 02:17:35 dyoung Exp $
      $NetBSD: if_loop.c,v 1.65 2007/09/01 04:32:50 dyoung Exp $
      $NetBSD: if_media.c,v 1.26 2007/05/29 21:32:30 christos Exp $
-     $NetBSD: if_ppp.c,v 1.117 2007/09/01 04:32:50 dyoung Exp $
-     $NetBSD: if_sl.c,v 1.107 2007/09/01 04:32:50 dyoung Exp $
+     $NetBSD: if_ppp.c,v 1.118 2007/10/08 16:18:05 ad Exp $
+     $NetBSD: if_sl.c,v 1.108 2007/10/08 16:18:05 ad Exp $
      $NetBSD: pfil.c,v 1.24 2005/12/11 12:24:51 christos Exp $
      $NetBSD: ppp_tty.c,v 1.47 2007/03/04 06:03:17 christos Exp $
      $NetBSD: radix.c,v 1.38 2007/07/12 04:28:59 dyoung Exp $
@@ -450,7 +452,7 @@
      $NetBSD: db_interface.c,v 1.53 2007/09/26 19:48:36 ad Exp $
      $NetBSD: db_memrw.c,v 1.20 2007/08/29 23:38:04 ad Exp $
      $NetBSD: db_trace.c,v 1.57 2007/08/05 19:27:45 ad Exp $
-     $NetBSD: subr_disk_mbr.c,v 1.29 2007/07/29 12:15:45 ad Exp $
+     $NetBSD: subr_disk_mbr.c,v 1.30 2007/10/08 18:04:05 ad Exp $
      $NetBSD: gdt.c,v 1.40 2007/08/07 12:00:25 ad Exp $
      $NetBSD: idle_machdep.c,v 1.4 2007/09/26 19:48:43 ad Exp $
      $NetBSD: machdep.c,v 1.608 2007/09/26 19:48:37 ad Exp $
@@ -471,9 +473,9 @@
      $NetBSD: atapi_wdc.c,v 1.104 2007/01/23 20:10:06 reinoud Exp $
      $NetBSD: scsiconf.c,v 1.243 2007/03/04 06:02:42 christos Exp $
      $NetBSD: atapiconf.c,v 1.72 2006/11/16 01:33:26 christos Exp $
-     $NetBSD: cd.c,v 1.268 2007/08/04 02:58:59 rumble Exp $
+     $NetBSD: cd.c,v 1.269 2007/10/08 16:41:14 ad Exp $
      $NetBSD: ch.c,v 1.77 2007/03/04 06:02:42 christos Exp $
-     $NetBSD: sd.c,v 1.266 2007/10/01 18:16:05 bouyer Exp $
+     $NetBSD: sd.c,v 1.267 2007/10/08 16:41:14 ad Exp $
      $NetBSD: st.c,v 1.201 2007/10/06 12:52:43 bouyer Exp $
      $NetBSD: st_scsi.c,v 1.26 2006/11/16 01:33:26 christos Exp $
      $NetBSD: st_atapi.c,v 1.20 2006/11/16 01:33:26 christos Exp $
@@ -482,7 +484,7 @@
      $NetBSD: ss_mustek.c,v 1.36 2007/03/04 06:02:44 christos Exp $
      $NetBSD: ss_scanjet.c,v 1.47 2006/11/16 01:33:26 christos Exp $
      $NetBSD: uk.c,v 1.52 2007/03/04 06:02:44 christos Exp $
-     $NetBSD: wd.c,v 1.345 2007/09/16 18:41:47 bouyer Exp $
+     $NetBSD: wd.c,v 1.346 2007/10/08 16:41:11 ad Exp $
      $NetBSD: ata_wdc.c,v 1.86 2007/04/08 06:59:43 dyoung Exp $
      $NetBSD: ata.c,v 1.90 2007/07/09 21:00:30 ad Exp $
      $NetBSD: bios32.c,v 1.14 2007/08/07 11:30:20 ad Exp $
@@ -615,7 +617,7 @@
      $NetBSD: bt3c.c,v 1.11 2007/10/02 05:37:50 plunky Exp $
      $NetBSD: slhci_pcmcia.c,v 1.2 2007/08/16 02:30:22 kiyohara Exp $
      $NetBSD: btbc.c,v 1.3 2007/10/02 05:37:51 plunky Exp $
-     $NetBSD: usb.c,v 1.99 2007/08/15 04:00:34 kiyohara Exp $
+     $NetBSD: usb.c,v 1.100 2007/10/08 16:18:04 ad Exp $
      $NetBSD: usbdi.c,v 1.120 2007/08/15 04:00:34 kiyohara Exp $
      $NetBSD: usbdi_util.c,v 1.49 2007/03/04 06:02:50 christos Exp $
      $NetBSD: usb_mem.c,v 1.32 2007/03/04 06:02:50 christos Exp $
@@ -624,7 +626,7 @@
      $NetBSD: uhub.c,v 1.89 2007/03/23 21:51:34 drochner Exp $
      $NetBSD: ezload.c,v 1.11 2006/04/14 17:21:17 christos Exp $
      $NetBSD: uaudio.c,v 1.110 2007/03/13 13:51:54 drochner Exp $
-     $NetBSD: umidi.c,v 1.31 2007/07/14 21:02:38 ad Exp $
+     $NetBSD: umidi.c,v 1.32 2007/10/08 16:18:04 ad Exp $
      $NetBSD: umidi_quirks.c,v 1.12 2006/09/03 21:28:03 christos Exp $
      $NetBSD: ucom.c,v 1.70 2007/03/04 06:02:48 christos Exp $
      $NetBSD: ugen.c,v 1.92 2007/03/04 06:02:49 christos Exp $
@@ -675,7 +677,7 @@
      $NetBSD: bthidev.c,v 1.9 2007/07/09 21:00:31 ad Exp $
      $NetBSD: btkbd.c,v 1.7 2007/07/09 21:00:31 ad Exp $
      $NetBSD: btms.c,v 1.6 2007/03/04 06:01:45 christos Exp $
-     $NetBSD: btsco.c,v 1.14 2007/04/21 06:15:22 plunky Exp $
+     $NetBSD: btsco.c,v 1.15 2007/10/08 16:18:02 ad Exp $
      $NetBSD: btuart.c,v 1.8 2007/09/03 12:38:27 kiyohara Exp $
      $NetBSD: OsdEnvironment.c,v 1.1 2006/03/23 13:41:13 kochi Exp $
      $NetBSD: OsdHardware.c,v 1.2 2006/05/14 21:42:26 elad Exp $

まあcom.cだろな、そこの差分でも読むかね...

[NetBSD] kern/37462 その3

うーん、そもそもcom.cでmutex_spin_enter(9)している間に
pccbb.cでtsleep(9)してはいけないのかもしれん。
manにんなことが書いてある希ガス。

つーわけで暫定的に

Index: com.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/com.c,v
retrieving revision 1.268
diff -u -r1.268 com.c
--- com.c	14 Dec 2007 03:36:54 -0000	1.268
+++ com.c	30 Dec 2007 18:49:46 -0000
@@ -724,7 +724,9 @@
 		if (!sc->enabled)
 			panic("com_shutdown: not enabled?");
 #endif
+		mutex_spin_exit(&sc->sc_lock);
 		(*sc->disable)(sc);
+		mutex_spin_enter(&sc->sc_lock);
 		sc->enabled = 0;
 	}
 	mutex_spin_exit(&sc->sc_lock);
@@ -772,13 +774,14 @@
 		mutex_spin_enter(&sc->sc_lock);
 
 		if (sc->enable) {
+			mutex_spin_exit(&sc->sc_lock);
 			if ((*sc->enable)(sc)) {
-				mutex_spin_exit(&sc->sc_lock);
 				splx(s);
 				printf("%s: device enable failed\n",
 				       sc->sc_dev.dv_xname);
 				return (EIO);
 			}
+			mutex_spin_enter(&sc->sc_lock);
 			sc->enabled = 1;
 			com_config(sc);
 		}

としてみたらちゃんと動くようになった、でも本当にこれでいいか(特にMP)は知らん。
どしよ、これでsend-prした方がいいのかね?

2007/12/31(Mon)

[NetBSD] kern/37462 その4

めんどくさいので昨日のpatch投げた、あとはad氏あたりがなんとかしてくれるでそ。

4.99.45くらいからLCDのバックライトが消える件は
どーやら外部ディスプレイに勝手に切替ってる?模様。
Fn + F7でLCDに再切替すれば再点灯することが判ったので
当面それで逃げることにしてユーザーランドも合わせて更新した。

[NetBSD] kinput2 + sj3

kernelを4.99.46にしたらsj3servが突然落ちるな。

$ sudo gdb -p 7994
Attaching to process 7994
Reading symbols from /usr/pkg/bin/sj3serv...done.
Reading symbols from /lib/libc.so.12...done.
Loaded symbols for /lib/libc.so.12
Reading symbols from /usr/libexec/ld.elf_so...done.
Loaded symbols for /usr/libexec/ld.elf_so
0xbbb034a7 in select () from /lib/libc.so.12
(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x08054448 in Jmvmemi (src=0x80ce000 <Address 0x80ce000 out of bounds>, 
    dest=0x80cdfec "z\001\201", len=37120) at mvmemi.c:46
46              while (len-- > 0) *dest++ = *src++;
(gdb) bt
#0  0x08054448 in Jmvmemi (src=0x80ce000 <Address 0x80ce000 out of bounds>, 
    dest=0x80cdfec "z\001\201", len=37120) at mvmemi.c:46
#1  0x08057676 in Jstudy (stdy=0xbfbfdc0c) at study.c:97
A
#2  0x0804b4e5 in exec_study () at execute.c:861
#3  0x0804d213 in execute_cmd () at execute.c:1590
#4  0x08049930 in communicate () at comuni.c:744
#5  0x0804d699 in main (argc=Cannot access memory at address 0x80ce000) at main.c:243
(gdb) 

そのうち調べる。

あとpkgsrcのrc.d/sj3が 起動前にあやまってシステム辞書を消すとかもあったなそういや、まあそのうちに。
使ってるのってもはや俺だけだろう。

つか iwataさんの sj3-2.0.1.21をだれかpkgsrcにすごく...してほしいです。

ってまたおちたへんかんできねー。