From owner-freebsd-stable@FreeBSD.ORG Tue Jan 2 18:49:55 2007 Return-Path: X-Original-To: freebsd-stable@freebsd.org Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 080B516A407 for ; Tue, 2 Jan 2007 18:49:55 +0000 (UTC) (envelope-from mike@jellydonut.org) Received: from mail2.secureworks.net (mail2.secureworks.net [65.114.32.154]) by mx1.freebsd.org (Postfix) with ESMTP id D739513C458 for ; Tue, 2 Jan 2007 18:49:54 +0000 (UTC) (envelope-from mike@jellydonut.org) Received: from localhost (localhost [127.0.0.1]) by mail2.secureworks.net (Postfix) with ESMTP id 490C517298; Tue, 2 Jan 2007 13:20:03 -0500 (EST) X-Virus-Scanned: amavisd-new at secureworks.net Received: from mail2.secureworks.net ([127.0.0.1]) by localhost (mail2.secureworks.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3Pg2M3gIkLbA; Tue, 2 Jan 2007 13:20:03 -0500 (EST) Received: from [192.168.23.35] (mole1.secureworks.net [63.239.86.3]) by mail2.secureworks.net (Postfix) with ESMTP id 105B51729F; Tue, 2 Jan 2007 13:20:03 -0500 (EST) Message-ID: <459AA253.20603@jellydonut.org> Date: Tue, 02 Jan 2007 13:20:03 -0500 From: Michael Proto User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.0.9) Gecko/20061228 Thunderbird/1.5.0.9 Mnenhy/0.7.4.666 MIME-Version: 1.0 To: Gavin Atkinson , freebsd-stable@freebsd.org References: <20070102153608.GA78405@icarus.home.lan> <1167755991.84652.6.camel@buffy.york.ac.uk> <20070102180438.GA81454@icarus.home.lan> In-Reply-To: <20070102180438.GA81454@icarus.home.lan> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Subject: Re: Interrupt (SCSI?) hang on 4.x X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jan 2007 18:49:55 -0000 Jeremy Chadwick wrote: > Once the machine is hung like described, since running shell > commands (date/vmstat/even spawning sh itself) involves disk I/O, > this won't work. If date and vmstat could be cached in memory > somewhere, this might work, but I don't know how one would do that. > (A memory filesystem could work, but pretty much all of / would > have to be there for this to work...) > > The best I could do would be to have a cronjob or a process running > in a screen session which does date && vmstat -i over and over to a > log file, and examine that log once the machine hung like described. > This wouldn't tell us if the numbers were increasing/fluxuating > *after* the hang, though. :-( > You *could* create a small ramdisk, copy /lib into it (along with /usr/bin/vmstat, /bin/sh, and any other needed utils), then set the LD_LIBRARAY_PATH to /mnt/lib or wherever the ramdisk is mounted and run vmstat. If you are already logged-in prior to the hang then utils on the mfs should run provided all their libraries are also on the mfs. I use a very similar process on a small Soekris box when I do an in-place flash upgrade which runs dd over the entire disk (a 32 MB compact flash card) while the box is still running from the same disk. My pre-upgrade script copies /sbin/reboot, /bin/dd, /lib/libc.so.6, and /lib/libutil.so.5 to a small mfs mounted at /mnt and sets LD_LIBRARY_PATH to /mnt prior to running dd (after which "reboot -lnq" is run, also from the mfs). -Proto