[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20101011135152.GB10270@osiris.boeblingen.de.ibm.com>
Date: Mon, 11 Oct 2010 15:51:52 +0200
From: Heiko Carstens <heiko.carstens@...ibm.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Tejun Heo <tj@...nel.org>, Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...e.hu>,
Andrew Morton <akpm@...ux-foundation.org>,
Rusty Russell <rusty@...tcorp.com.au>,
linux-kernel@...r.kernel.org, Arnd Bergmann <arnd@...db.de>
Subject: Re: [PATCH/RFC] timer: fix deadlock on cpu hotplug
On Mon, Oct 11, 2010 at 02:31:03PM +0200, Peter Zijlstra wrote:
> On Thu, 2010-09-23 at 15:31 +0200, Heiko Carstens wrote:
> > On Wed, Sep 22, 2010 at 04:29:36PM +0200, Peter Zijlstra wrote:
> > > On Wed, 2010-09-22 at 11:22 +0200, Peter Zijlstra wrote:
> > >
> > > > The idea was to move it to a class of its own above SCHED_FIFO.
> > > >
> > > > I'll try and get something done, but I'm heading out to LinuxCon.JP
> > > > soon.
> > >
> > > Something like the below, it seems to boot, build a kernel and hotplug.
> >
> > Thanks for the fast patch. Yes, it works. Sort of:
> >
> > ------------[ cut here ]------------
> > WARNING: at kernel/kthread.c:182
> > [...]
> > ..and crashes afterwards ;)
> >
> > Btw. I also tried to boot 2.6.35.5 with your patch and it hangs just at
> > the beginning. I also had to apply 5e3d20a68f63fc5a310687d81956c3b96e488b84
> > "init: Remove the BKL from startup code" to make the machine boot again,
> > which was a bit surprising.
>
> Does something like the below (on top of the previous patch) work?
Yes, it works. Just survived a git clone a complete kernel build while cpu
hotplug stress was running. Thanks!
Tested-by: Heiko Carstens <heiko.carstens@...ibm.com>
> Can I have your hotplug script (cpukill2.sh?) to test, a simply while(1)
> loop offlining and onlining cpu1 doesn't seem to impress my machine
> (with the below folded in)..
That's one of the scripts our testers are using:
#! /bin/bash
RANDOM=`date '+%s'`
let "NUMBER = $RANDOM % 2 + 0"
CPUS=`ls /sys/devices/system/cpu/ | grep cpu`
count=`echo $CPUS | wc -w`
echo You have $count no. of CPUs
echo You have the following CPUs: $CPUS
while [ 1 ] ; do
for ((i=0 ; i<=$count ; i++)) ; do
rnd=$[($RANDOM % $count) ] # RND between 0..max_no_of_cpu
let "NUMBER = $RANDOM % 2 + 0"
echo "echo $NUMBER > /sys/devices/system/cpu/cpu$rnd/online"
echo $NUMBER > /sys/devices/system/cpu/cpu$rnd/online
done
done
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists