Crash with FreeBSD 6.1 STABLE of today
Martin Blapp
mb at imp.ch
Mon Jun 26 14:33:47 UTC 2006
Hi,
> Is the problem actually understood? Do we know what's racing with what?
> Given there only ever seems to be a single backtrace involved, as far as
> I can tell, it's ttymodem racing with tty_close - can those two
> functions alone be locked?
Correct: The only place there tp->t_session is set to NULL is in tty_close().
tp->t_pgrp = NULL;
tp->t_session = NULL;
tp->t_state = 0;
But I've seen this comment on peters page (http://people.freebsd.org/~peter/smp.html)
> At the moment I've hacked all the console code to obtain the scheduler mutex
> instead of spltty()'ing all over the place, because in a word: it can't
> spltty() any more. It's illegal because the console code may be called at any time (see
> the next section). This is a hack because it isn't MP safe against tty
> interrupts running on another cpu. Since the current tty interrupt is a fast
> interrupt, I'm not sure that we're any worse off (fastints aren't masked by the
> cpl anyway).
IMHO it explains why we need the proctree_lock (in early SMP times
scheduler mutex). Maybe this should be replaced with a proper tty subsystem
mutex ...)
After looking at our SMPnewgen Page, Poul Henning and Thomas Moestel
are working on locking the tty subsystem. I'll CC those :-)
Martin
More information about the freebsd-stable
mailing list