Re: 2.6.29-rc1 does not boot

From: Mike Travis
Date: Thu Jan 15 2009 - 15:32:32 EST


* Dieter Ries wrote:
> Hi,
>
> Ingo Molnar schrieb:
>>>> * Dieter Ries <clip2@xxxxxx> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I just pulled 2.6.29-rc1, ran oldconfig with defaults and built it.
>>>>> When I try to boot it, that kind of works until init should start. Then
>>>>> nothing happens. I tried with init=/bin/bash, which sometimes works, and
>>>>> sometimes gets me a bash without the prompt flashing.
...

* Maciej Rutecki <maciej.rutecki@xxxxxxxxx> wrote:
> Revert this commit also solves problem on my laptoop.

Hi Dieter and Maciej,

Can you try the attached patches on your system? It boots on my system fine
now, but wasn't there a problem with resume as well? (My test systems are
remote so suspending/resuming over the network is iffy.)

The patches apply to the latest tip/cpus4096 branch:

http://people.redhat.com/mingo/tip.git/README

(They may apply to linux-next as well, I'm not sure.)

Thanks!
Mike

========================
Subject: cpumask: don't try to get_online_cpus() in work_on_cpu.

From: Rusty Russell <rusty@xxxxxxxxxxxxxxx>

Impact: remove potential circular lock dependency with cpu hotplug lock

This has caused more problems than it solved, with a pile of cpu
hotplug locking issues.

Followup patches will get_online_cpus() in callers that need it, but
if they don't do it they're no worse than before when they were using
set_cpus_allowed without locking.
========================
Subject: work_on_cpu: Use our own workqueue.

From: Rusty Russell <rusty@xxxxxxxxxxxxxxx>

Impact: remove potential circular lock dependency with generic kevent workqueue

Annoyingly, some places we want to use work_on_cpu are already in
workqueues. As per Ingo's suggestion, we create a different workqueue
for work_on_cpu.

========================
Subject: cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write

Impact: use new work_on_cpu function to reduce stack usage

Replace the saving of current->cpus_allowed and set_cpus_allowed_ptr() with
a work_on_cpu function for drv_read() and drv_write().

Basically converts do_drv_{read,write} into "work_on_cpu" functions that
are now called by drv_read and drv_write.
========================

Attachment: fix-work_on_cpu-in-acpi-cpufreq.tar.bz2
Description: application/bzip