Subject: Re: rough SA patch (works on SMP)
To: Stephan Uphoff <ups@stups.com>
From: Frank van der Linden <fvdl@netbsd.org>
List: tech-kern
Date: 06/24/2003 16:33:11
I also tried Christian's patch. The good news about that one is, that
I don't get kernel panics, and I can ^C xmms. However, phoenix seems
very unstable, it doesn't seem to connect to anything, and it sometimes
produces libpthread assertion failures at startup.

Stephan's patch, as I reported earlier, also prevents kernel panics.
Phoenix mostly works, but has threading problems for some webpages.
I mentioned that things hang when I ^C xmms with that patch. It appears
to be a deadlock. The state at that time is:

db{1}> t
cpu_Debugger(c16daae0,c,d,0,10) at netbsd:cpu_Debugger+0x4
comintr(c176c600,c,ffff0010,e4c20030,c0290010) at netbsd:comintr+0x114
Xintr_ioapic_edge4() at netbsd:Xintr_ioapic_edge4+0x9c
--- interrupt ---
issignal(e4c08184,400006,0,246,100000) at netbsd:issignal+0x2b
ltsleep(e4c08184,120,c0356323,0,0) at netbsd:ltsleep+0x21b
sa_vp_repossess(e4c08184,0,48affcc8,482d195c,e4be9840) at netbsd:sa_vp_repossess+0xd3
sa_upcall_userret(e4c08184,e4c2cf80,14,c02ac5b5,482d9224) at netbsd:sa_upcall_userret+0x158
syscall_plain(2b,2b,2b,2b,48b7feec) at netbsd:syscall_plain+0x161
db{1}> mach cpu 0
using cpu 0
db{1}> t
spinlock_acquire_count(c03e0d60,1,e4c0cd50,c0238cc5,e4c08204) at netbsd:spinlock
_acquire_count+0x5f
mi_switch(e4c08084,e4c08204,e4c08204,c024a250,e4c08084) at netbsd:mi_switch+0x1aa
sa_switch(e4c08084,2,c023847c,e4c08084,e4c08084) at netbsd:sa_switch+0x199
ltsleep(c03e25a0,118,c0357640,2,0) at netbsd:ltsleep+0x2ae
sys_poll(e4c08084,e4c0cf80,e4c0cf78,c02abd1b,e4c08084) at netbsd:sys_poll+0x280
syscall_plain(1f,1f,1f,1f,9) at netbsd:syscall_plain+0xc0
db{1}> 

Looks like a problem in the dreaded signal code.

- Frank