* 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

Reply via email to