From owner-freebsd-alpha Mon Feb 17 5:36:57 2003 Delivered-To: freebsd-alpha@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 31D6D37B401; Mon, 17 Feb 2003 05:36:56 -0800 (PST) Received: from flood.ping.uio.no (flood.ping.uio.no [129.240.78.31]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8B14943FCB; Mon, 17 Feb 2003 05:36:55 -0800 (PST) (envelope-from des@ofug.org) Received: by flood.ping.uio.no (Postfix, from userid 2602) id 1672853B5; Mon, 17 Feb 2003 14:36:52 +0100 (CET) X-URL: http://www.ofug.org/~des/ X-Disclaimer: The views expressed in this message do not necessarily coincide with those of any organisation or company with which I am or have been affiliated. To: alpha@freebsd.org Cc: current@freebsd.org Subject: Re: top-of-tree alpha kernel panics during boot From: Dag-Erling Smorgrav Date: Mon, 17 Feb 2003 14:36:51 +0100 In-Reply-To: (Dag-Erling Smorgrav's message of "Thu, 13 Feb 2003 13:05:22 +0100") Message-ID: User-Agent: Gnus/5.090014 (Oort Gnus v0.14) Emacs/21.2 (i386--freebsd) References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org OK, I've played around with my kernel trying to figure out what causes this. The one thing I know is that it disappears if I leave pcm out of my kernel, but I don't think pcm is the culprit. Since the address at fault is constant, I've added code to mtrash_[cd]tor() which calls db_print_backtrace() every time we hit that address. I also added code to module_regiser_init() to identify the module being processed: > module_register_init: registering 'isa/esscontrol' > mtrash_ctor(0xfffffc00007aab80, 64, 0) > mtrash_ctor(0xfffffc00007a8ba0, 32, 0) > mtrash_ctor(0xfffffc00007b6000, 8192, 0) > db_print_backtrace() at db_print_backtrace+0x18 > mtrash_ctor() at mtrash_ctor+0x68 > uma_zalloc_arg() at uma_zalloc_arg+0x160 > malloc() at malloc+0x94 > kobj_class_compile() at kobj_class_compile+0x2c > devclass_add_driver() at devclass_add_driver+0x64 > driver_module_handler() at driver_module_handler+0xb4 > module_register_init() at module_register_init+0xc0 > mi_startup() at mi_startup+0x144 > locorestart() at locorestart+0x64 > --- root of call graph --- > Memory modified after free 0xfffffc00007b6000(8184) > panic: Most recently used by none > > panic > Stopped at Debugger+0x38: zapnot v0,#0xf,v0 The problem is that this doesn't really tell me what I want (i.e. who held that block before it was allocated to isa/esscontrol). All I know about that is: mtrash_dtor(0xfffffc00007b6000, 8192, 0) because it seems that db_print_backtrace() is a nop at that point. Any suggestions as to how I can figure out who used that block of memory before it was allocated to the ess driver? DES -- Dag-Erling Smorgrav - des@ofug.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message