Date: Tue, 16 Jul 2002 14:47:57 -0400 (EDT) From: Andrew Gallatin <gallatin@cs.duke.edu> To: John Baldwin <jhb@FreeBSD.org> Cc: current@FreeBSD.org, Andrew Kolchoogin <andrew@snark.rinet.ru> Subject: Re: VOP_GETATTR panic on Alpha Message-ID: <15668.27229.270084.969951@grasshopper.cs.duke.edu> In-Reply-To: <XFMail.20020716142622.jhb@FreeBSD.org> References: <15668.23528.719956.574605@grasshopper.cs.duke.edu> <XFMail.20020716142622.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin 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. > > It's probably preemption. However, the problem may be that you can't > switch to the ithread if you just turn preemption on for panics because > the ithread may already be on the run queue, thus why your earlier patch > may not have worked. Try to see if it works ok if you turn on preemption > fully by making the second arg to ithread_schedule() be !cold. FWIW, I > only have problems with preemption on alphas if I use SMP. I think its more than this. I tried unconditionally enabling premption, and I see no improvement. After a panic, it "wedges", and I see this : db> c syncing disks... done Uptime: 4m26s [halt sent] Stopped at siointr1+0x198: br zero,siointr1+0x330 <zero=0x0> db> tr siointr1() at siointr1+0x198 siointr() at siointr+0x40 isa_handle_fast_intr() at isa_handle_fast_intr+0x24 alpha_dispatch_intr() at alpha_dispatch_intr+0xd0 interrupt() at interrupt+0x110 XentInt() at XentInt+0x28 --- interrupt (from ipl 0) --- critical_exit() at critical_exit+0x20 _mtx_unlock_spin_flags() at _mtx_unlock_spin_flags+0xc4 msleep() at msleep+0x2b0 buf_daemon() at buf_daemon+0x1f4 fork_exit() at fork_exit+0xe0 exception_return() at exception_return --- root of call graph --- So its still stuck in msleep. How is it supposed to get back to the panic'ed thread if a system thread wakes up and is not allowed to go back to sleep??? Drew 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?15668.27229.270084.969951>