From owner-freebsd-current@FreeBSD.ORG Thu Dec 21 14:25:29 2006 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A0DC916A5AD for ; Thu, 21 Dec 2006 14:25:29 +0000 (UTC) (envelope-from kip.macy@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.189]) by mx1.freebsd.org (Postfix) with ESMTP id A8BF713C428 for ; Thu, 21 Dec 2006 14:25:11 +0000 (UTC) (envelope-from kip.macy@gmail.com) Received: by nf-out-0910.google.com with SMTP id x37so2868298nfc for ; Thu, 21 Dec 2006 06:25:10 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=RuNX70cHIqJXd+VWYQrl0mp50IQmu0A8DO5uOYH9XfyXpAPpr/P/cYeVQvnXDI9QnxtAt1O+f9m2KlTWVUEnPfMLQbsjmSUczx0phbYgseMoLBOrP4dQW1Za7gfy2w1NcIvpt21DwdbHHZK/MtOKMqZmYg2zlMxeA1qJt0S65pQ= Received: by 10.82.135.13 with SMTP id i13mr1800385bud.1166647922987; Wed, 20 Dec 2006 12:52:02 -0800 (PST) Received: by 10.82.191.16 with HTTP; Wed, 20 Dec 2006 12:52:02 -0800 (PST) Message-ID: Date: Wed, 20 Dec 2006 12:52:02 -0800 From: "Kip Macy" To: "Dmitry Pryanishnikov" In-Reply-To: MIME-Version: 1.0 References: <20061219175917.L84683@atlantis.atlantis.dp.ua> <20061220130559.P54963@atlantis.atlantis.dp.ua> <20061220124032.GC23698@deviant.kiev.zoral.com.ua> <20061220215753.H53808@atlantis.atlantis.dp.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Kostik Belousov , freebsd-current@freebsd.org, Kip Macy Subject: Re: ddb(4) spoils kernel stack in CURRENT? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 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: Thu, 21 Dec 2006 14:25:29 -0000 I've identified the workaround code in DDB. I'll commit a fix as soon as I have some time to test my changes. -Kip On 12/20/06, Kip Macy wrote: > > I worried that gdb probably had workaround for the large stack argument. > I'll have to dig it up, thanks for the heads up. > > -Kip > > On 12/20/06, Dmitry Pryanishnikov wrote: > > > > > > Hello! > > > > On Wed, 20 Dec 2006, Kostik Belousov wrote: > > >>> So it looks like a regression in CURRENT vs RELENG_6 (either ddb > > 'spoils' > > >>> the stack somehow, or kgdb fails to unwind it). > > > > > > Could you further localize the problem, i.e. try to backtrace CURRENT > > dump > > > > Good news: I've managed to localize the bug! I'm Feeling Lucky (TM) > > ;) > > just because CURRENT on my notebook was updated approx. at 17-Dec 00:00, > > > > and it didn't manifest such a behaviour! So it was easy to identify the > > regression - it comes with the following commit: > > > > ----------------------------------------------------------------------- > > > > Date: Sun, 17 Dec 2006 05:07:01 +0000 (UTC) > > From: Kip Macy > > To: src-committers@freebsd.org, cvs-src@freebsd.org , > > cvs-all@freebsd.org > > Subject: cvs commit: src/sys/i386/i386 apic_vector.s exception.slocal_apic.c > > trap.c vm86.c vm86bios.s src/sys/i386/include apicvar.h > > src/sys/i386/isa atpic.c atpic_vector.s icu.h > > > > kmacy 2006-12-17 05:07:01 UTC > > > > FreeBSD src repository > > > > Modified files: > > sys/i386/i386 apic_vector.s exception.s local_apic.c > > trap.c vm86.c vm86bios.s > > sys/i386/include apicvar.h > > sys/i386/isa atpic.c atpic_vector.s icu.h > > Log: > > Evidently FreeBSD has long relied on the compiler to treat structures > > passed by value (trap frames) as if they were in fact being passed by > > > > reference. For better or worse, this incorrect behaviour is no longer > > present in gcc 4.1. In this patch I convert all trapframe arguments > > to > > be explicitly pass by reference. I also remove vm86_initflags, > > pushing > > the very little work that it actually does up into vm86_prepcall. > > > > ----------------------------------------------------------------------- > > > > So kernel built from sources as of date=2006.12.17.05.00.00 gives dump > > with analyzable backtrace, and kernel built from sources as of > > date=2006.12.17.05.10.00 (which include this commit) gives dump > > which confuses kgdb. I believe that commit itself is correct, > > but kgdb contains some workaround against the old (incorrect) behaviour > > of the kernel, so it's the kgdb that should be fixed. > > > > Sincerely, Dmitry > > -- > > Atlantis ISP, System Administrator > > e-mail: dmitry@atlantis.dp.ua > > nic-hdl: LYNX-RIPE > > _______________________________________________ > > freebsd-current@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-current > > To unsubscribe, send any mail to " > > freebsd-current-unsubscribe@freebsd.org" > > > >