* 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