From owner-freebsd-current Tue Mar 5 23:49:40 2002 Delivered-To: freebsd-current@freebsd.org Received: from critter.freebsd.dk (critter.freebsd.dk [212.242.86.163]) by hub.freebsd.org (Postfix) with ESMTP id 5C2ED37B404 for ; Tue, 5 Mar 2002 23:49:33 -0800 (PST) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.12.2/8.12.2) with ESMTP id g267nILv091592; Wed, 6 Mar 2002 08:49:18 +0100 (CET) (envelope-from phk@critter.freebsd.dk) To: qhwt@myrealbox.com Cc: current@FreeBSD.ORG Subject: Re: Won't boot after the commits to timecounter code In-Reply-To: Your message of "Wed, 06 Mar 2002 14:45:15 +0900." <20020306054514.GA395@gzl> Date: Wed, 06 Mar 2002 08:49:18 +0100 Message-ID: <91591.1015400958@critter.freebsd.dk> From: Poul-Henning Kamp Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG The only thing I know off right now is this thing from BDE which I havn't been able to verify yet: ============================================================================ From: Bruce Evans Subject: dummy_timecounter broken; breaks booting with -d To: Message-Id: <20020305075815.D2623-100000@gamplex.bde.org> Date: Tue, 05 Mar 2002 08:09:26 +1100 %%% Index: kern_tc.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_tc.c,v retrieving revision 1.116 diff -u -2 -r1.116 kern_tc.c --- kern_tc.c 26 Feb 2002 09:16:27 -0000 1.116 +++ kern_tc.c 4 Mar 2002 21:08:03 -0000 @@ -192,4 +252,14 @@ gen = tc->tc_generation; bintime2timeval(&tc->tc_offset, tvp); + /* + * XXX dummy_timecounter is now broken. Its tc_get_timecount + * needs to be called before it works, and that doesn't + * always happen naturally. In particular, we spin forever + * here after booting with -d unless we do an unnatural call + * here, since the screen timeout code is always run on entry + * to ddb, and it calls here. + */ + if (gen == 0 && timecounter == &dummy_timecounter) + (void)tc->tc_get_timecount(tc); } while (gen == 0 || gen != tc->tc_generation); } %%% Bruce In message <20020306054514.GA395@gzl>, qhwt@myrealbox.com writes: >Hello. >After upgrading to the kernel as of 2002-03-03 00:00:00(UTC), it stopped >booting just after the message: > >Timecounter "i8254" frequency 1193182 Hz > >With some debugging printf()'s inserted, I found it was tc->tc_get_timecount() >called from tco_delta() called just after the bcopy() in tc_windup(). >So maybe the next place I have to look at is i8254_get_timecount(), which is in >/sys/i386/isa/clock.c, but the last (effective) commit to this file is >revision 1.180(at the end of January). > >I couldn't even drop into DDB; no response other than to power button. >The last bootable(and stable so far) kernel is from 2002-02-24. >I don't think this is caused by some leftover in the work directory >since I always build kernels in a new empty directory under /usr/obj. > >Any (clue|fix)\? > >To Unsubscribe: send mail to majordomo@FreeBSD.org >with "unsubscribe freebsd-current" in the body of the message > -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message