2.6.15 failure on power4 iSeries
will schmidt
will_schmidt at vnet.ibm.com
Thu Jan 19 03:00:25 EST 2006
Michael Ellerman wrote:
> On Thu, 19 Jan 2006 01:38, will schmidt wrote:
>
>>Michael Ellerman wrote:
>>
>>>On Wed, 18 Jan 2006 01:42, will schmidt wrote:
>>>
>>>>Michael Ellerman wrote:
>>>>
>>>>>On Tue, 17 Jan 2006 10:35, will schmidt wrote:
>>>>>
>>>>>>attempting to boot current kernels on a power4 iSeries doesnt work.
>>>>>>have tried both the powerpc-git tree and the torvalds-git tree.
>>>>>>
>>>>>>OS/400 RefCode is "C200 82FF". (which means nothing to me :-)
>>>>>
>>>>>C20082FF VSP IPL complete successfully
>>>>>
>>>>>
>>>>>>no console output at all.
>>>>
>>>>This looks like the "2.6.15-mm4 failure on power5" output.. but I dont
>>>>see a *cpuc-to-mutexes.patch in this tree to back out. (torvalds-git)
>>>>
>>>>Will clean my glasses and look closer in a bit.. :-)
>>>
>>>Yeah, looks similar. I can't reproduce that crash on my POWER5 box here
>>>though, so I'm not sure if that patch is actually the problem. Might be
>>>worth git bisecting.
>>
>>I already git bisected to get it narrowed down to that one patch. Or are
>>you saying that the patch is broken up into more parts in the powerpc-git
>>tree?
>>
>>Same tree builds and boots OK on power5 partition here too.. this seems
>>to be something unique to power4 iSeries.
>
>
> Sorry, getting the two bugs confused. I'm not sure which of the code in
> question is in mm vs Linus' git. It might be worth trying one of Ingo's
> patches for the other bug though, just in case.
>
>
>>>You could try adding calls to udbg_printf() in start_kernel() to see if
>>>we're getting in there.
>
>
> Any luck with this?
yup, just added some more debug..
looks like setup_arch() calls into do_init_bootmem() which loops around a reserve_bootmem() call. the last call into reserve_bootmem isnt returning.
debug code:
DBG("-> do_init_bootmem %d\n",__LINE__);
DBG("-> do_init_bootmem lmb.reserved.cnt %d\n",lmb.reserved.cnt);
/* reserve the sections we're already using */
for (i = 0; i < lmb.reserved.cnt; i++) {
DBG("-> reserve_bootmem ( %lx %lx %d \n",lmb.reserved.region[i].base,lmb_size_bytes(&lmb.reserved,i),i);
reserve_bootmem(lmb.reserved.region[i].base,
lmb_size_bytes(&lmb.reserved, i));
DBG("<- reserve_bootmem \n");
}
DBG("-> do_init_bootmem %d\n",__LINE__);
console output:
-> do_init_bootmem 285
-> do_init_bootmem lmb.reserved.cnt 5
-> reserve_bootmem ( 0 500e80 0
<- reserve_bootmem
-> reserve_bootmem ( ffe5000 1b000 1
<- reserve_bootmem
-> reserve_bootmem ( 3c7f7000 8000 2
<- reserve_bootmem
-> reserve_bootmem ( 3c7ff668 994 3
<- reserve_bootmem
-> reserve_bootmem ( 3c800000 0 4
looks like lmb_size_bytes is returning a zero for that last lmb..
>
> cheers
>
More information about the Linuxppc64-dev
mailing list