Thread (12 messages) 12 messages, 4 authors, 2016-06-21

Re: unrecoverable exception on G5 with CONFIG_PPC_EARLY_DEBUG enabled

flat view

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2016-06-16 12:07:16

On Thu, 2016-06-16 at 11:12 +0300, Denis Kirjanov wrote:
On 6/6/16, Michael Ellerman [off-list ref] wrote:
quoted
On Mon, 2016-06-06 at 10:52 +0300, Denis Kirjanov wrote:
quoted
I haven't bisected this yet. Photo attached.
A bisect would be awesome.
Ok, the issue was introduced by the commit
caca285e5ab4a7a19fede51688106ceed6fc45dd (powerpc/mm/radix: Use
STD_MMU_64 to properly isolate hash related code) and 970mp dies on
the following condition:
quoted hunk ↗ jump to hunk
+BEGIN_MMU_FTR_SECTION
        bl      slb_allocate_realmode
-
+END_MMU_FTR_SECTION_IFCLR(MMU_FTR_RADIX)
Thanks.

How did you work that out?

That FTR section says to call slb_allocate_realmode() when MMU_FTR_RADIX is
clear (ie. zero). That should always be the case on your machine, unless you've
plugged a Power9 into your G5 ;)
In my config I've enabled radix MMU lookup but in my understanding
only recent IBM  machines support this feature and we have to call SLB
entry through slb_allocate_realmode on HPTE machine?
That's right, and that's what the code should be doing.

My G5 is booting OK:

michael@cogito:~$ uname -a
Linux cogito 4.7.0-rc3-gdb06d75 #1 SMP Thu Jun 16 05:16:31 AEST 2016 ppc64 GNU/Linux

michael@cogito:~$ cat /proc/cpuinfo 
processor	: 0
cpu		: PPC970FX, altivec supported
clock		: 1599.999000MHz
revision	: 3.0 (pvr 003c 0300)

timebase	: 33333333
platform	: PowerMac
model		: PowerMac8,1
machine		: PowerMac8,1
motherboard	: PowerMac8,1 MacRISC4 Power Macintosh 
detected as	: 338 (iMac G5)
pmac flags	: 00000000
L2 cache	: 512K unified
pmac-generation	: NewWorld

michael@cogito:~$ zgrep RADIX /proc/config.gz 
CONFIG_PPC_RADIX_MMU=y

michael@cogito:~$ dmesg|grep _features
[    0.000000] cpu_features      = 0x0804806318100448
[    0.000000] cpu_user_features = 0xdc080000 0x00000000
[    0.000000] mmu_features      = 0x0c000001
[    0.000000] firmware_features = 0x0000000000000000

In particular notice:

#define MMU_FTR_RADIX			ASM_CONST(0x80000000)
                              mmu_features      = 0x0c000001

ie. MMU_FTR_RADIX is clear.

Do you see a different value for mmu_features?

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help