Date: Thu, 10 Jan 2008 11:24:17 -0500 From: John Baldwin <jhb@freebsd.org> To: freebsd-acpi@freebsd.org Cc: Alexey Starikovskiy <astarikovskiy@suse.de>, "Moore, Robert" <robert.moore@intel.com> Subject: Re: GPE handler livelock Message-ID: <200801101124.18406.jhb@freebsd.org> In-Reply-To: <200801101015.29669.jhb@freebsd.org> References: <200712311556.lBVFuVZf030567@freefall.freebsd.org> <4782BA24.8030703@root.org> <200801101015.29669.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 10 January 2008 10:15:29 am John Baldwin wrote: > On Monday 07 January 2008 06:47:48 pm Nate Lawson wrote: > > This makes sense. For the _L00 method in question, it runs 2 notifies > > before it completes. So in our queue, that would be: > > > > T1: GPE:_L00 > > [_LOO method runs, GPE removed] > > [_L00 queues 2 more Notifies] > > T2: Notify, Notify > > [_L00 completes] > > > > Right now, there is nothing in our code to synchronize _L00's completion > > with completion of the Notifys. In fact, _L00 finishes before the > > Notifys run. Also, if another GPE comes in while this GPE is running, > > it will be queued in front of the Notifys and so would execute first. > > > > So I think with just your evgpe.c change, we will defer re-enabling the > > GPE until after the queued Notifys complete since the re-enable task > > will be queued at the same priority. > > > > The only remaining concern I have is if another GPE comes in before one > > or both Notifys run, it will be inserted at the head of the queue. So > > as a hack, I'm setting the priority of these to be equal. > > > > Yousif, please try the attached patch and don't load a custom ASL. > > This patch appears to work for me in my testing. I think this might also > explain the weird hangs I reported seeing when running on battery with > powerd on older kernels, but I haven't tested that case yet. Update to note that it did not fix the issue I have with powerd. However debug.cpufreq.lowest does seem to help my issues with powerd. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801101124.18406.jhb>