From owner-freebsd-acpi@FreeBSD.ORG Wed Oct 13 16:08:14 2010 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C2E9C106566C for ; Wed, 13 Oct 2010 16:08:14 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id DDC478FC08 for ; Wed, 13 Oct 2010 16:08:13 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id TAA14044; Wed, 13 Oct 2010 19:08:09 +0300 (EEST) (envelope-from avg@icyb.net.ua) Message-ID: <4CB5D969.5030108@icyb.net.ua> Date: Wed, 13 Oct 2010 19:08:09 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.9) Gecko/20100920 Lightning/1.0b2 Thunderbird/3.1.4 MIME-Version: 1.0 To: Hans Petter Selasky References: <201010121209.06397.hselasky@c2i.net> <201010121425.07279.hselasky@c2i.net> <4CB4C882.6050006@icyb.net.ua> <201010131514.57188.hselasky@c2i.net> In-Reply-To: <201010131514.57188.hselasky@c2i.net> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: MacBookPro 5,1 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Oct 2010 16:08:14 -0000 on 13/10/2010 16:14 Hans Petter Selasky said the following: > On Tuesday 12 October 2010 22:43:46 Andriy Gapon wrote: >> on 12/10/2010 15:25 Hans Petter Selasky said the following: >>> On Tuesday 12 October 2010 13:15:26 Andriy Gapon wrote: >>>> on 12/10/2010 13:09 Hans Petter Selasky said the following: >>>>> Hi, >>>>> >>>>> My MacBookPro 5,1 does not boot using -current because memory inside >>>>> the ACPI kernel module is used after free. >>>>> >>>>> The following patch temporily mitigates the problem: >>>>> >>>>> /usr/src/sys/dev/acpica/Osd/OsdMemory.c >>>>> >>>>> void >>>>> AcpiOsFree(void *Memory) >>>>> { >>>>> + if (cold == 0) >>>>> >>>>> free(Memory, M_ACPICA); >>>>> >>>>> } >>>>> >>>>> Is there any way to debug this from user-land? >>>> >>>> I think that the best way is to get a backtrace at least or better a >>>> crashdump. >>> >>> The crashdump is not helpful. It crashes at init time, while the actual >>> free happens very early during boot. >> >> Still a backtrace would be useful, I think. So no backtrace yet? :-) >> Or track all calls to AcpiOsFree, e.g. using DTrace or stack(9) or etc. > > Do you have any hints how a shall configure DTrace to trace AcpiOsFree() ? You set up DTrace using general procedure: http://wiki.freebsd.org/DTrace The you can write a little DTrace script to trace calls to AcpiOsFree (and perhaps/probably AcpiOsAllocate) using fbt provider: http://wikis.sun.com/display/DTrace/fbt+Provider Sorry, EBUSY to write a complete script right now. You might find DTrace function stack() and aggregations useful. Things are bit trickier if the crash happens before you have a chance to do anything in userland. -- Andriy Gapon