Date: Tue, 16 Jul 2002 14:26:31 -0400 (EDT) From: John Baldwin <jhb@FreeBSD.org> To: Andrew Gallatin <gallatin@cs.duke.edu> Cc: current@freebsd.org, Andrew Kolchoogin <andrew@snark.rinet.ru>, Alfred Perlstein <bright@mu.org> Subject: Re: VOP_GETATTR panic on Alpha Message-ID: <XFMail.20020716142631.jhb@FreeBSD.org> In-Reply-To: <15668.25298.312139.824563@grasshopper.cs.duke.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On 16-Jul-2002 Andrew Gallatin wrote:
>
> Alfred Perlstein writes:
> > > We need to somehow let only interrupt threads and the panic'ed process
> > > run after a panic. I have no idea how to do this in a clean,
> > > low-impact way.
> > >
> > > Drew
> > >
> > > PS: I was trying to make crashdumps fail on x86 by increasing HZ. But
> > > I cannot. I have no idea why this only happens on alpha.
> >
> > um, psuedocode...
> >
> > for ithreads, td->td_flags |= TD_ITHREAD
> > for panicing thread, td->td_flags |= TD_INPANIC
> >
> > if ((cold || panicstr) && (td->td_flags & (TD_ITHREAD|TD_INPANIC)) != 0) {
> >
>
> I have no idea what's planned for td_flags. Is stealing 2 values for
> this use acceptable? I didn't consider touching the flags to be
> lightweight..
>
>
> If so, I was thinking more like
>
>#define TDF_PANICSCHED 0x000002 /* may be scheduled during/after a panic */
You can already do if (td->td_ithd != NULL) to do the TD_ITHREAD test.
The problem is that this won't work if there is a process on the run queue with
a higher priority than the currently running process.
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020716142631.jhb>
