* Peter Wemm <[EMAIL PROTECTED]> [020722 00:16] wrote: > It might be just me because I swapped an ISA 'si' card for a PCI version, but > the problems I've been seeing are pretty spectacular. I'm regularly seeing > the following panics: > > - selwakeup() taking fatal traps (always while running postfix/smtpd, > presumably this is happening during the traditional 'select collision' > window - the locking looks rather suspect there too). This killed my box > 3 times today alone.
What's suspect about the locking? > This is happening on this line: > > 1182 if (td == NULL) { > 1183 mtx_unlock(&sellock); > 1184 return; > 1185 } > 1186 >>>HERE>>> TAILQ_REMOVE(&td->td_selq, sip, si_thrlist); > 1187 sip->si_thread = NULL; > 1188 mtx_lock_spin(&sched_lock); > 1189 if (td->td_wchan == (caddr_t)&selwait) { > 1190 if (td->td_state == TDS_SLP) > > All of these panics have been at this identical location -it isn't random. > I briefly went looking and I'm wondering if the locking is adequate here. I was hoping it was, what problem do you see here? All the td->td_selq accesses should be protected by the select mutex. Perhaps selwakeup() is being called on an uninitialized selinfo structure? I guess adding some sort of diagnostic checks for initialized selinfos might help. Yes, I've been seeing some instability, but not of the magnitude you're seeing. :) -- -Alfred Perlstein [[EMAIL PROTECTED]] [#bsdcode/efnet/irc.prison.net] 'Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom.' To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message