2008-01-13 19:00:33

by Steven Rostedt

[permalink] [raw]
Subject: 2.6.24-rc7-rt1

We are pleased to announce the 2.6.24-rc7-rt1 tree, which can be
downloaded from the location:

http://rt.et.redhat.com/download/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

Changes since 2.6.24-rc5-rt1

- ported to 2.6.24-rc7

- Modifications to mcount (following upstream push)

- Fixed Arm for new mcount calling (Clark Williams)

- Fixed PPC for new mcount calling (Steven Rostedt)

- dev_queue_xmit preemption fix (Mark Beauchemin)

- root domain fix (Gregory Haskins)

- serial login fix (Thomas Gleixner)

- latency tracer bootmem panic fix (Steven Rostedt)

- more hacks for kernbench and POWER (Paul McKenney)

- fix to Paul's patch (Robert Schwebel)

- PPC non-SMP compile fix (Egor Starkov)

- RCU trace with markers (K. Prasad)

- time keeping fixes (John Stultz)

- Removed "raw" for rtc_lock for PPC chrp (Steven Rostedt)


to build a 2.6.24-rc7-rt1 tree, the following patches should be applied:

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.24-rc7.bz2
http://rt.et.redhat.com/download/patch-2.6.24-rc7-rt1.bz2


And like always, my RT version of Matt Mackall's ketchup will get this
for you nicely:

http://people.redhat.com/srostedt/rt/tools/ketchup-0.9.8-rt3


The broken out patches are also available.

-- Steve



2008-01-13 19:53:35

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1: macro "put_cpu_var" passed 2 arguments, but takes just 1

Hello,

> We are pleased to announce the 2.6.24-rc7-rt1 tree, which can be
> downloaded from the location:
>
> http://rt.et.redhat.com/download/

CC arch/x86/mm/init_32.o
In file included from include/asm-generic/tlb.h:17,
from include/asm/tlb.h:9,
from arch/x86/mm/init_32.c:43:
include/linux/quicklist.h:73:28: error: macro "put_cpu_var" passed 2 arguments, but takes just 1
In file included from include/asm-generic/tlb.h:17,
from include/asm/tlb.h:9,
from arch/x86/mm/init_32.c:43:
include/linux/quicklist.h: In function '__quicklist_free':
include/linux/quicklist.h:73: error: 'put_cpu_var' undeclared (first use in this function)
include/linux/quicklist.h:73: error: (Each undeclared identifier is reported only once
include/linux/quicklist.h:73: error: for each function it appears in.)
make[1]: *** [arch/x86/mm/init_32.o] Error 1
make: *** [arch/x86/mm] Error 2

--- linux-2.6.24-rc7-rt1.orig/include/linux/quicklist.h 2008-01-11 21:16:22.000000000 -0500
+++ linux-2.6.24-rc7-rt1/include/linux/quicklist.h 2008-01-11 21:18:08.000000000 -0500
@@ -18,7 +18,7 @@ struct quicklist {
int nr_pages;
};

[... snip ...]

@@ -56,12 +64,13 @@ static inline void __quicklist_free(int
struct page *page)
{
struct quicklist *q;
+ int cpu;

- q = &get_cpu_var(quicklist)[nr];
+ q = &get_cpu_var_locked(quicklist, &cpu)[nr];
*(void **)p = q->page;
q->page = p;
q->nr_pages++;
- put_cpu_var(quicklist);
+ put_cpu_var(quicklist, cpu); <------------- should that be put_cpu_var_locked()?
}

Regards,

Mariusz

2008-01-13 20:26:40

by Robert Schwebel

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1

On Sun, Jan 13, 2008 at 02:00:01PM -0500, Steven Rostedt wrote:
> We are pleased to announce the 2.6.24-rc7-rt1 tree

Works fine on phyCORE-MPC5200B-tiny, here are the latest results:
http://www.pengutronix.de/oselas/realtime/results/20080113-1/

However, when I try to switch on the latency tracer, it ends with the
warnings below. I've added early_printk() stubs in order to make it
link at all.

In file included from kernel/latency_trace.c:27:
include/asm/asm-offsets.h:76:1: warning: "CLONE_VM" redefined
In file included from include/linux/security.h:32,
from include/linux/mm.h:15,
from kernel/latency_trace.c:7:
include/linux/sched.h:8:1: warning: this is the location of the previous definition
In file included from kernel/latency_trace.c:27:
include/asm/asm-offsets.h:77:1: warning: "CLONE_UNTRACED" redefined
In file included from include/linux/security.h:32,
from include/linux/mm.h:15,
from kernel/latency_trace.c:7:
include/linux/sched.h:22:1: warning: this is the location of the previous definition
In file included from kernel/latency_trace.c:27:
include/asm/asm-offsets.h:88:1: warning: "TASK_SIZE" redefined
In file included from include/asm/thread_info.h:25,
from include/linux/thread_info.h:34,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:85,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:4,
from include/linux/mm.h:8,
from kernel/latency_trace.c:7:
include/asm/processor.h:84:1: warning: this is the location of the previous definition
In file included from kernel/latency_trace.c:27:
include/asm/asm-offsets.h:112:1: warning: "NSEC_PER_SEC" redefined
In file included from include/linux/stat.h:60,
from include/linux/fs.h:278,
from include/linux/security.h:25,
from include/linux/mm.h:15,
from kernel/latency_trace.c:7:
include/linux/time.h:37:1: warning: this is the location of the previous definition
In file included from kernel/latency_trace.c:27:
include/asm/asm-offsets.h:115:1: warning: "PGD_TABLE_SIZE" redefined
In file included from include/asm/pgtable.h:15,
from include/linux/mm.h:38,
from kernel/latency_trace.c:7:
include/asm/pgtable-ppc32.h:91:1: warning: this is the location of the previous definition
CC [M] fs/ext2/balloc.o
kernel/latency_trace.c: In function 'check_wakeup_timing':
kernel/latency_trace.c:2240: warning: format '%016lx' expects type 'long unsigned int', but argument 2 has type 'cycle_t'

Robert
--
Robert Schwebel | http://www.pengutronix.de
OSADL Testlab @ Pengutronix | http://www.osadl.org

2008-01-13 20:38:16

by Steven Rostedt

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1: macro "put_cpu_var" passed 2 arguments, but takes just 1



On Sun, 13 Jan 2008, Mariusz Kozlowski wrote:

> [... snip ...]
>
> @@ -56,12 +64,13 @@ static inline void __quicklist_free(int
> struct page *page)
> {
> struct quicklist *q;
> + int cpu;
>
> - q = &get_cpu_var(quicklist)[nr];
> + q = &get_cpu_var_locked(quicklist, &cpu)[nr];
> *(void **)p = q->page;
> q->page = p;
> q->nr_pages++;
> - put_cpu_var(quicklist);
> + put_cpu_var(quicklist, cpu); <------------- should that be put_cpu_var_locked()?
> }
>

Ouch! <looks at rejs>

*************** static inline void __quicklist_free(int
*** 76,86 ****
return;
}

- q = &get_cpu_var(quicklist)[nr];
*(void **)p = q->page;
q->page = p;
q->nr_pages++;
- put_cpu_var(quicklist);
}

static inline void quicklist_free(int nr, void (*dtor)(void *), void *pp)
--- 73,83 ----
return;
}

+ q = &get_cpu_var_locked(quicklist, &cpu)[nr];
*(void **)p = q->page;
q->page = p;
q->nr_pages++;
+ put_cpu_var_locked(quicklist, cpu);
}

static inline void quicklist_free(int nr, void (*dtor)(void *), void *pp)
************

Darn, that was my fault. OK, will release a -rt2 soon.

Thanks,

-- Steve

2008-01-13 20:43:47

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1

Hello,

> We are pleased to announce the 2.6.24-rc7-rt1 tree, which can be
> downloaded from the location:
>
> http://rt.et.redhat.com/download/

CC kernel/lockdep.o
kernel/lockdep.c: In function 'trace_hardirqs_on':
kernel/lockdep.c:2068: error: too many arguments to function 'trace_hardirqs_on_caller'
make[1]: *** [kernel/lockdep.o] Error 1
make: *** [kernel] Error 2

--- linux-2.6.24-rc7-rt1.orig/kernel/lockdep.c 2008-01-11 21:16:46.000000000 -0500
+++ linux-2.6.24-rc7-rt1/kernel/lockdep.c 2008-01-11 21:18:10.000000000 -0500

[... snip ...]

/*
* Hardirqs will be enabled:
*/
-void trace_hardirqs_on(void)
+notrace void trace_hardirqs_on_caller(void) <--- this should have 'unsigned long a0'
{
struct task_struct *curr = current;
unsigned long ip;
@@ -2050,6 +2059,13 @@ void trace_hardirqs_on(void)
curr->hardirq_enable_ip = ip;
curr->hardirq_enable_event = ++curr->irq_events;
debug_atomic_inc(&hardirqs_on_events);
+#ifdef CONFIG_CRITICAL_IRQSOFF_TIMING
+ time_hardirqs_on(a0, 0 /* CALLER_ADDR1 */); <--- a0 is used here
+#endif
+}
+
+void notrace trace_hardirqs_on(void) {
+ trace_hardirqs_on_caller(CALLER_ADDR0);
}

But then there is also trace_hardirqs_on_caller() in kernel/latency_trace.c
and both are not static.

Regards,

Mariusz

2008-01-13 20:49:20

by Steven Rostedt

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1


On Sun, 13 Jan 2008, Robert Schwebel wrote:

> On Sun, Jan 13, 2008 at 02:00:01PM -0500, Steven Rostedt wrote:
> > We are pleased to announce the 2.6.24-rc7-rt1 tree
>
> Works fine on phyCORE-MPC5200B-tiny, here are the latest results:
> http://www.pengutronix.de/oselas/realtime/results/20080113-1/

That doesn't look too bad. Or is over a 100us not good for that box?

Also is it SMP?


>
> However, when I try to switch on the latency tracer, it ends with the
> warnings below. I've added early_printk() stubs in order to make it
> link at all.

Yeah, I didn't make any attempt to fix latency_tracing for PPC on this
release. I expected as much. I do have a couple of PPC boxes that I can
play with, and I'll see if I can get that working too before -rt2. But I
want to get a stable x86 release out fast.

Thanks,

-- Steve

2008-01-13 20:54:48

by Steven Rostedt

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1


On Sun, 13 Jan 2008, Mariusz Kozlowski wrote:
>
> But then there is also trace_hardirqs_on_caller() in kernel/latency_trace.c
> and both are not static.
>

Servers me right for releasing without testing more than one config. I
compiled for x86_64, i386 and PPC 32 and 64, but all without any tracing
on. And I should have since I modified that a bit.

OK, -rt2 will take a bit more beating from me before I release it, so it
might take some time to get it out (expect it out on Monday).

-- Steve

2008-01-13 22:56:32

by Mark Knecht

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1

On Jan 13, 2008 11:00 AM, Steven Rostedt <[email protected]> wrote:
> We are pleased to announce the 2.6.24-rc7-rt1 tree, which can be
> downloaded from the location:
>
> http://rt.et.redhat.com/download/
>

Up and running here. No significant testing but no problems building
it and no obvious regressions from 2.6.24-rc2-rt1.

mark@lightning ~ $ uname -a
Linux lightning 2.6.24-rc7-rt1 #1 PREEMPT RT Sun Jan 13 14:41:21 PST
2008 x86_64 AMD Athlon(tm) 64 Processor 3000+ AuthenticAMD GNU/Linux
mark@lightning ~ $

- Mark

2008-01-14 08:27:57

by Mike Galbraith

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1


On Sun, 2008-01-13 at 15:54 -0500, Steven Rostedt wrote:

> OK, -rt2 will take a bit more beating from me before I release it, so it
> might take some time to get it out (expect it out on Monday).

Ah, that reminds me (tests, yup) I still need the patchlet below to
resume from ram without black screen of death. No idea why my P4 box
seems to be the only box in the rt galaxy affected. (haven't poked at
it since the holidays)

Index: linux-2.6.24.git-rt1/kernel/sched_rt.c
===================================================================
--- linux-2.6.24.git-rt1.orig/kernel/sched_rt.c
+++ linux-2.6.24.git-rt1/kernel/sched_rt.c
@@ -33,6 +33,9 @@ static inline void rt_clear_overload(str

static void update_rt_migration(struct rq *rq)
{
+ if (unlikely(num_online_cpus() == 1))
+ return;
+
if (rq->rt.rt_nr_migratory && (rq->rt.rt_nr_running > 1)) {
if (!rq->rt.overloaded) {
rt_set_overload(rq);
@@ -105,8 +108,10 @@ static inline void dec_rt_tasks(struct t
} /* otherwise leave rq->highest prio alone */
} else
rq->rt.highest_prio = MAX_RT_PRIO;
- if (p->nr_cpus_allowed > 1)
+ if (p->nr_cpus_allowed > 1) {
+ BUG_ON(!rq->rt.rt_nr_migratory);
rq->rt.rt_nr_migratory--;
+ }

if (rq->rt.highest_prio != highest_prio)
cpupri_set(&rq->rd->cpupri, rq->cpu, rq->rt.highest_prio);


btw, CONFIG_INTEL_IOATDMA compile booboo

CC drivers/dma/ioat_dma.o
drivers/dma/ioat_dma.c: In function ‘ioat1_tx_submit’:
drivers/dma/ioat_dma.c:300: error: too few arguments to function ‘__list_splice’
make[2]: *** [drivers/dma/ioat_dma.o] Error 1

2008-01-14 12:19:20

by Gregory Haskins

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1

>>> On Mon, Jan 14, 2008 at 3:27 AM, in message
<[email protected]>, Mike Galbraith <[email protected]>
wrote:

> On Sun, 2008-01-13 at 15:54 -0500, Steven Rostedt wrote:
>
>> OK, -rt2 will take a bit more beating from me before I release it, so it
>> might take some time to get it out (expect it out on Monday).
>
> Ah, that reminds me (tests, yup) I still need the patchlet below to
> resume from ram without black screen of death.

I had forgotten about this issue over the holidays...Sorry Mike.

So does that BUG_ON trip if you remove the first hunk?

> No idea why my P4 box
> seems to be the only box in the rt galaxy affected. (haven't poked at
> it since the holidays)
>
> Index: linux-2.6.24.git-rt1/kernel/sched_rt.c
> ===================================================================
> --- linux-2.6.24.git-rt1.orig/kernel/sched_rt.c
> +++ linux-2.6.24.git-rt1/kernel/sched_rt.c
> @@ -33,6 +33,9 @@ static inline void rt_clear_overload(str
>
> static void update_rt_migration(struct rq *rq)
> {
> + if (unlikely(num_online_cpus() == 1))
> + return;
> +
> if (rq->rt.rt_nr_migratory && (rq->rt.rt_nr_running > 1)) {
> if (!rq->rt.overloaded) {
> rt_set_overload(rq);
> @@ -105,8 +108,10 @@ static inline void dec_rt_tasks(struct t
> } /* otherwise leave rq->highest prio alone */
> } else
> rq->rt.highest_prio = MAX_RT_PRIO;
> - if (p->nr_cpus_allowed > 1)
> + if (p->nr_cpus_allowed > 1) {
> + BUG_ON(!rq->rt.rt_nr_migratory);
> rq->rt.rt_nr_migratory--;
> + }
>
> if (rq->rt.highest_prio != highest_prio)
> cpupri_set(&rq->rd->cpupri, rq->cpu, rq->rt.highest_prio);
>
>
> btw, CONFIG_INTEL_IOATDMA compile booboo
>
> CC drivers/dma/ioat_dma.o
> drivers/dma/ioat_dma.c: In function ‘ioat1_tx_submit’:
> drivers/dma/ioat_dma.c:300: error: too few arguments to function
> ‘__list_splice’
> make[2]: *** [drivers/dma/ioat_dma.o] Error 1
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2008-01-14 13:25:21

by Mike Galbraith

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1


On Mon, 2008-01-14 at 07:13 -0500, Gregory Haskins wrote:
> >>> On Mon, Jan 14, 2008 at 3:27 AM, in message
> <[email protected]>, Mike Galbraith <[email protected]>
> wrote:
>
> > On Sun, 2008-01-13 at 15:54 -0500, Steven Rostedt wrote:
> >
> >> OK, -rt2 will take a bit more beating from me before I release it, so it
> >> might take some time to get it out (expect it out on Monday).
> >
> > Ah, that reminds me (tests, yup) I still need the patchlet below to
> > resume from ram without black screen of death.
>
> I had forgotten about this issue over the holidays...Sorry Mike.

I forgot about it too. I'll likely poke at it again.

> So does that BUG_ON trip if you remove the first hunk?

No, I just copied the matching paranoia while leering at it.

-Mike

2008-01-14 14:30:18

by Mike Galbraith

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1


On Mon, 2008-01-14 at 14:25 +0100, Mike Galbraith wrote:

> No, I just copied the matching paranoia while leering at it.

Actually, I can't say definitively no, only that a panic() there didn't
make keyboard blink. Suspend may be disabling blinkies, dunno.

-Mike

2008-01-14 16:40:42

by S.Çağlar Onur

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1

Hi;

14 Oca 2008 Pts tarihinde, Mike Galbraith şunları yazmıştı:
> btw, CONFIG_INTEL_IOATDMA compile booboo
>
> CC drivers/dma/ioat_dma.o
> drivers/dma/ioat_dma.c: In function ‘ioat1_tx_submit’:
> drivers/dma/ioat_dma.c:300: error: too few arguments to function ‘__list_splice’
> make[2]: *** [drivers/dma/ioat_dma.o] Error 1

Following seems solves this issue;

Index: linux-2.6.23/drivers/dma/ioat_dma.c
===================================================================
--- linux-2.6.23.orig/drivers/dma/ioat_dma.c
+++ linux-2.6.23/drivers/dma/ioat_dma.c
@@ -260,7 +260,7 @@ static dma_cookie_t ioat1_tx_submit(stru
/* write address into NextDescriptor field of last desc in chain */
to_ioat_desc(ioat_chan->used_desc.prev)->hw->next =
first->async_tx.phys;
- __list_splice(&new_chain, ioat_chan->used_desc.prev);
+ list_splice(&new_chain, &ioat_chan->used_desc);

ioat_chan->dmacount += desc_count;
ioat_chan->pending += desc_count;


Cheers
--
S.Çağlar Onur <[email protected]>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!

2008-01-14 16:53:13

by Steven Rostedt

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1



On Mon, 14 Jan 2008, [utf-8] S.?^Ga?^_lar Onur wrote:

>
> Following seems solves this issue;
>
> Index: linux-2.6.23/drivers/dma/ioat_dma.c
> ===================================================================
> --- linux-2.6.23.orig/drivers/dma/ioat_dma.c
> +++ linux-2.6.23/drivers/dma/ioat_dma.c
> @@ -260,7 +260,7 @@ static dma_cookie_t ioat1_tx_submit(stru
> /* write address into NextDescriptor field of last desc in chain */
> to_ioat_desc(ioat_chan->used_desc.prev)->hw->next =
> first->async_tx.phys;
> - __list_splice(&new_chain, ioat_chan->used_desc.prev);
> + list_splice(&new_chain, &ioat_chan->used_desc);

Thanks, but I already fixed it. It requires a list_splice_tail.

-- Steve

>
> ioat_chan->dmacount += desc_count;
> ioat_chan->pending += desc_count;
>
>

2008-01-14 19:50:15

by Robert Schwebel

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1

On Sun, Jan 13, 2008 at 03:48:33PM -0500, Steven Rostedt wrote:
> > Works fine on phyCORE-MPC5200B-tiny, here are the latest results:
> > http://www.pengutronix.de/oselas/realtime/results/20080113-1/
>
> That doesn't look too bad. Or is over a 100us not good for that box?

I think it's ok. However, Wolfgang still sees strange long delays on his
Icecube, so it was mainly for comparism.

> Also is it SMP?

Nope, UP. This one:

http://www.phytec.de/phytec/32-bit_module/phycore-mpc5200b-tiny.html

The CPU is basically a 603e core plus peripherals.

> Yeah, I didn't make any attempt to fix latency_tracing for PPC on this
> release. I expected as much. I do have a couple of PPC boxes that I can
> play with, and I'll see if I can get that working too before -rt2. But I
> want to get a stable x86 release out fast.

Yup, great, thanks!

Robert
--
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9

2008-01-15 08:07:32

by Mike Galbraith

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1


On Mon, 2008-01-14 at 14:25 +0100, Mike Galbraith wrote:

> I forgot about it too. I'll likely poke at it again.

<poke>

push_rt_task()
find_lock_lowest_rq()
find_lowest_rq()
return pick_optimal_cpu().

returned cpu is offline. Box prefers -1.

-Mike


2008-01-15 09:28:49

by Mike Galbraith

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1


debug resume trace

static inline int pick_optimal_cpu(int this_cpu, cpumask_t *mask)
{
int first;

/* "this_cpu" is cheaper to preempt than a remote processor */
if ((this_cpu != -1) && cpu_isset(this_cpu, *mask))
return this_cpu;

first = first_cpu(*mask);
if (first != NR_CPUS) {
if (!cpu_online(first)) {
WARN_ON_ONCE(1);
return -1;
}
return first;
}

return -1;
}

[ 156.344352] CPU1 is down
[ 3.726557] Intel machine check architecture supported.
[ 3.726565] Intel machine check reporting enabled on CPU#0.
[ 3.726567] CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
[ 3.726570] CPU0: Thermal monitoring enabled
[ 3.726576] Back to C!
[ 3.727107] Force enabled HPET at resume
[ 3.727193] Enabling non-boot CPUs ...
[ 3.727446] CPU0 attaching NULL sched-domain.
[ 3.727550] WARNING: at kernel/sched_rt.c:385 pick_optimal_cpu()
[ 3.727553] Pid: 27, comm: events/0 Not tainted 2.6.24-rt2-smp #73
[ 3.727556] [<b010522a>] show_trace_log_lvl+0x1a/0x30
[ 3.727564] [<b0105ccd>] show_trace+0x12/0x14
[ 3.727567] [<b010641f>] dump_stack+0x6c/0x72
[ 3.727569] [<b0120b0f>] find_lowest_rq+0x199/0x1af
[ 3.727573] [<b0120beb>] push_rt_task+0x6e/0x1ed
[ 3.727575] [<b01276a3>] switched_to_rt+0x39/0x55
[ 3.727579] [<b0128cd1>] task_setprio+0xbf/0x18f
[ 3.727581] [<b014c21e>] __rt_mutex_adjust_prio+0x19/0x1c
[ 3.727585] [<b014c943>] task_blocks_on_rt_mutex+0x14e/0x17e
[ 3.727588] [<b02f2e18>] rt_spin_lock_slowlock+0xed/0x16a
[ 3.727593] [<b02f351a>] __rt_spin_lock+0x41/0x48
[ 3.727596] [<b02f3529>] rt_spin_lock+0x8/0xa
[ 3.727598] [<b013f2c2>] finish_wait+0x25/0x49
[ 3.727602] [<b013c746>] worker_thread+0x64/0xe1
[ 3.727605] [<b013efb2>] kthread+0x39/0x5b
[ 3.727607] [<b0104e83>] kernel_thread_helper+0x7/0x14
[ 3.727610] =======================
[ 3.727624] SMP alternatives: switching to SMP code
[ 3.728314] Booting processor 1/1 eip 3000

2008-01-15 16:57:14

by Gregory Haskins

[permalink] [raw]
Subject: Re: 2.6.24-rc7-rt1

>>> On Tue, Jan 15, 2008 at 4:28 AM, in message
<[email protected]>, Mike Galbraith <[email protected]>
wrote:

> debug resume trace
>
> static inline int pick_optimal_cpu(int this_cpu, cpumask_t *mask)
> {
> int first;
>
> /* "this_cpu" is cheaper to preempt than a remote processor */
> if ((this_cpu != -1) && cpu_isset(this_cpu, *mask))
> return this_cpu;
>
> first = first_cpu(*mask);
> if (first != NR_CPUS) {
> if (!cpu_online(first)) {
> WARN_ON_ONCE(1);
> return -1;
> }
> return first;
> }
>
> return -1;
> }
>
> [ 156.344352] CPU1 is down
> [ 3.726557] Intel machine check architecture supported.
> [ 3.726565] Intel machine check reporting enabled on CPU#0.
> [ 3.726567] CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
> [ 3.726570] CPU0: Thermal monitoring enabled
> [ 3.726576] Back to C!
> [ 3.727107] Force enabled HPET at resume
> [ 3.727193] Enabling non-boot CPUs ...
> [ 3.727446] CPU0 attaching NULL sched-domain.
> [ 3.727550] WARNING: at kernel/sched_rt.c:385 pick_optimal_cpu()
> [ 3.727553] Pid: 27, comm: events/0 Not tainted 2.6.24-rt2-smp #73
> [ 3.727556] [<b010522a>] show_trace_log_lvl+0x1a/0x30
> [ 3.727564] [<b0105ccd>] show_trace+0x12/0x14
> [ 3.727567] [<b010641f>] dump_stack+0x6c/0x72
> [ 3.727569] [<b0120b0f>] find_lowest_rq+0x199/0x1af
> [ 3.727573] [<b0120beb>] push_rt_task+0x6e/0x1ed
> [ 3.727575] [<b01276a3>] switched_to_rt+0x39/0x55
> [ 3.727579] [<b0128cd1>] task_setprio+0xbf/0x18f
> [ 3.727581] [<b014c21e>] __rt_mutex_adjust_prio+0x19/0x1c
> [ 3.727585] [<b014c943>] task_blocks_on_rt_mutex+0x14e/0x17e
> [ 3.727588] [<b02f2e18>] rt_spin_lock_slowlock+0xed/0x16a
> [ 3.727593] [<b02f351a>] __rt_spin_lock+0x41/0x48
> [ 3.727596] [<b02f3529>] rt_spin_lock+0x8/0xa
> [ 3.727598] [<b013f2c2>] finish_wait+0x25/0x49
> [ 3.727602] [<b013c746>] worker_thread+0x64/0xe1
> [ 3.727605] [<b013efb2>] kthread+0x39/0x5b
> [ 3.727607] [<b0104e83>] kernel_thread_helper+0x7/0x14
> [ 3.727610] =======================
> [ 3.727624] SMP alternatives: switching to SMP code
> [ 3.728314] Booting processor 1/1 eip 3000

This gives me a much better hint, Mike. Thanks!

-Greg