From owner-freebsd-stable@FreeBSD.ORG Mon Mar 19 17:57:01 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 C419B16A405 for ; Mon, 19 Mar 2007 17:57:01 +0000 (UTC) (envelope-from ghelmer@palisadesys.com) Received: from magellan.palisadesys.com (magellan.palisadesys.com [192.188.162.211]) by mx1.freebsd.org (Postfix) with ESMTP id 72CD913C4B0 for ; Mon, 19 Mar 2007 17:57:01 +0000 (UTC) (envelope-from ghelmer@palisadesys.com) Received: from [172.16.2.242] (cetus.palisadesys.com [192.188.162.7]) (authenticated bits=0) by magellan.palisadesys.com (8.13.8/8.13.8) with ESMTP id l2JHuqAA020821 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 19 Mar 2007 12:56:52 -0500 (CDT) (envelope-from ghelmer@palisadesys.com) Message-ID: <45FECEE7.6080107@palisadesys.com> Date: Mon, 19 Mar 2007 12:56:55 -0500 From: Guy Helmer User-Agent: Thunderbird 1.5.0.10 (Windows/20070221) MIME-Version: 1.0 To: freebsd-stable@freebsd.org References: <45FAA837.6060603@palisadesys.com> In-Reply-To: <45FAA837.6060603@palisadesys.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-3.0 (magellan.palisadesys.com [192.188.162.211]); Mon, 19 Mar 2007 12:56:52 -0500 (CDT) X-Palisade-MailScanner-Information: Please contact the ISP for more information X-Palisade-MailScanner: Found to be clean X-Palisade-MailScanner-SpamCheck: not spam (whitelisted), SpamAssassin (not cached, score=-4.399, required 6, autolearn=not spam, ALL_TRUSTED -1.80, BAYES_00 -2.60) X-Palisade-MailScanner-From: ghelmer@palisadesys.com Subject: Re: 6.2-amd64 Hang at reboot on Supermicro X7DBR-i+ 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: Mon, 19 Mar 2007 17:57:01 -0000 Guy Helmer wrote: > (reposting since this involves 6-stable) > > I'm investigating a problem where a pretty much stock 6.2 SMP kernel > randomly hangs on multiple Supermicro X7DBR-i+ and X7DBR-8+ systems. > The system syncs the filesystems and prints "Uptime: ...", then hangs. > > So far, I've narrowed it down to the MOD_SHUTDOWN request to the > "rootbus" module. Adding a printf() before and after the > "device_shutdown(child);" line in subr_bus.c method > bus_generic_shutdown() seems to make the problem go away, as does > running a kernel with INVARIANTS, WITNESS, and DDB/KDB. I'm trying to > reproduce the hang on a plain SMP kernel with just DDB/KDB, but it > hasn't hung yet. > I'm still not clear as to why, but the following change to bus_generic_shutdown() has kept the machines in question successfully rebooting continuously without hanging for the past three days: Index: sys/kern/subr_bus.c =================================================================== RCS file: /home/ncvs/src/sys/kern/subr_bus.c,v retrieving revision 1.184.2.4 diff -u -r1.184.2.4 subr_bus.c --- sys/kern/subr_bus.c 22 Sep 2006 18:49:14 -0000 1.184.2.4 +++ sys/kern/subr_bus.c 16 Mar 2007 17:59:04 -0000 @@ -2913,7 +2913,11 @@ device_t child; TAILQ_FOREACH(child, &dev->children, link) { + //printf(" Calling device_shutdown on child '%s':\n", child->nameunit); + DELAY(1000); device_shutdown(child); + //printf(" Returned from device_shutdown on child '%s'.\n", child->nameunit); + DELAY(1000); } return (0);