From owner-freebsd-acpi@FreeBSD.ORG Wed Mar 16 22:22:48 2011 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from [127.0.0.1] (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 2F122106566C; Wed, 16 Mar 2011 22:22:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: Andriy Gapon Date: Wed, 16 Mar 2011 18:22:17 -0400 User-Agent: KMail/1.6.2 References: <20110316115254.59f8b6f7@heavennet.ru> <4D80D340.6080804@freebsd.org> In-Reply-To: <4D80D340.6080804@freebsd.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201103161822.40131.jkim@FreeBSD.org> Cc: "Ilya A. Arhipov" , freebsd-acpi@freebsd.org, "Moore, Robert" Subject: Re: Panic after update kernel 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, 16 Mar 2011 22:22:48 -0000 On Wednesday 16 March 2011 11:12 am, Andriy Gapon wrote: > on 16/03/2011 16:18 Ilya A. Arhipov said the following: > > 2011/3/16 Andriy Gapon > > > > > on 16/03/2011 10:52 Ilya A. Archipov said the following: > > > and see: > > > http://imm.io/4nzZ > > > > > > what information still needs to provide? > > > > 'bt' command output please (a screenshot is fine). > > > > -- > > Andriy Gapon > > > > > > boot: > > http://imm.io/4nTZ > > bt: > > http://imm.io/4nTS <-first > > http://imm.io/4nUd <-last > > So the panic is that we acquire a regular (non-spin) mutex in an > interrupt context. Not sure if this is a FreeBSD issue > (implementation of ACPI semaphore) or some ACPICA issue (e.g. doing > something wrong in an interrupt handler). > > Jung-uk, Robert, can you please take a look? _GL_ creates a semaphore and this semaphore is exclusively used in interrupt context. Also, it is always used to wait forever if it cannot acquire the necessary global lock. This is really bad for us because a semaphore requires a lock object to prevent sleeping forever without being waken up. Only workaround I can think of is to turn AcpiOsWaitSemaphore() & AcpiOsSignalSemaphore() into tsleep(9) & wakeup(9) because that's exactly what it wants to do, it seems. JK