Subject: Re: rough SA patch (works on SMP)
To: Frank van der Linden <fvdl@netbsd.org>
From: Stephan Uphoff <ups@stups.com>
List: tech-kern
Date: 06/24/2003 13:44:07
Thanks for the trace.
This particular signal case should be easy to fix.
I will try to get a patch out today.
General signaling is next on my ToDo list and will take a few more days....
However my ancient server/router/firewall just blew its power
supply last night and is not working reliable with a replacement.
This might keep me busy and could knock we off-line for a while.
Stephan
> 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
>