From owner-freebsd-current@freebsd.org Wed May 4 13:54:41 2016 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67F2AB2C4B7 for ; Wed, 4 May 2016 13:54:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47E551F57 for ; Wed, 4 May 2016 13:54:41 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 5CF6CB94B; Wed, 4 May 2016 09:54:39 -0400 (EDT) From: John Baldwin To: Joel Dahl Cc: freebsd-current@freebsd.org, Michael Butler , Larry Rosenman Subject: Re: boot with floppy enabled doesn't..... Date: Wed, 04 May 2016 06:54:34 -0700 Message-ID: <4820633.yAoBQiERYH@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <20160504075145.GA6385@ymer.vnode.se> References: <0b555735ed2b24d5974f2357f3888d05@thebighonker.lerctr.org> <11150830.3czo4Xak1q@ralph.baldwin.cx> <20160504075145.GA6385@ymer.vnode.se> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 04 May 2016 09:54:39 -0400 (EDT) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2016 13:54:41 -0000 On Wednesday, May 04, 2016 09:51:45 AM Joel Dahl wrote: > On Tue, May 03, 2016 at 03:52:43PM -0700, John Baldwin wrote: > > On Tuesday, May 03, 2016 10:20:21 PM Joel Dahl wrote: > > > On Tue, May 03, 2016 at 12:58:15PM -0700, John Baldwin wrote: > > > > On Tuesday, May 03, 2016 03:37:27 PM Michael Butler wrote: > > > > > On 05/03/16 11:21, Larry Rosenman wrote: > > > > > > On 2016-05-03 05:49, Joel Dahl wrote: > > > > > >> On Sat, Apr 30, 2016 at 10:36:53PM -0500, Larry Rosenman wrote: > > > > > >>> On a current -CURRENT if my Floppy disk controller and device are > > > > > >>> ENABLED, we do NOT pass mount root, and the floppy disk > > > > > >>> light is ON. > > > > > >> > > > > > >> Just a "me too". But this is with VMware Fusion. If I disable the > > > > > >> floppy from > > > > > >> BIOS, the virtual machine boots. If I leave it enabled, it hangs. > > > > > > Thanks for posting that I'm not the only one, and it's not flakey hardware. > > > > > > > > > > > > > > > > I have an, otherwise extremely reliable but ancient, Intel TR440BXA > > > > > motherboard doing this :-( > > > > > > > > > > What drove me mad for a while is that I have an identical machine, with > > > > > exception of 10k RPM SCSI disks, which doesn't hang. I simply optioned > > > > > out "device fdc" and it's behaved ever since, > > > > > > > > Larry wasn't able to get into DDB when his box hung, are either of you able > > > > to get into DDB when it hangs? > > > > > > Um, ctrl-alt-backspace doesn't work for me, but ctrl-alt-esc does. > > > > > > I uploaded a few screenshots here: https://www.vnode.se/files/freebsd/ > > > > Thanks. It seems like the fdc worker thread isn't there and GEOM is stuck > > waiting for that thread to do something (well waiting for the commands > > that thread handles to be executed). > > > > First step would be just add a 'panic' to fdc_start_worker() in fdc.c at > > the end to make sure it is getting called. (And when it drops you into ddb > > you should be able to see the fdc0 kproc in 'ps' output). > > I did this, but no change. It hangs at the same place, so I guess the added > panic() is never called. The logic in fdc_acpi.c is a bit odd to follow, it sometimes goes to 'out' in the success case which is unusual. As a result, if your fdc device doesn't have an _FDE entry in the ACPI namespace we wouldn't start the worker thread. Try this change: Index: fdc_acpi.c =================================================================== --- fdc_acpi.c (revision 298950) +++ fdc_acpi.c (working copy) @@ -135,14 +135,13 @@ fdc_acpi_attach(device_t dev) obj = buf.Pointer; error = fdc_acpi_probe_children(bus, dev, obj->Buffer.Pointer); - if (error == 0) - fdc_start_worker(dev); - out: if (buf.Pointer) free(buf.Pointer, M_TEMP); if (error != 0) fdc_release_resources(sc); + else + fdc_start_worker(dev); return (error); } > > -- John Baldwin