unrecoverable exception on G5 with CONFIG_PPC_EARLY_DEBUG enabled

Michael Ellerman mpe at ellerman.id.au
Thu Jun 16 22:07:10 AEST 2016


On Thu, 2016-06-16 at 11:12 +0300, Denis Kirjanov wrote:
> On 6/6/16, Michael Ellerman <mpe at ellerman.id.au> wrote:
> > On Mon, 2016-06-06 at 10:52 +0300, Denis Kirjanov wrote:
> > > 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:

> +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 at cogito:~$ uname -a
Linux cogito 4.7.0-rc3-gdb06d75 #1 SMP Thu Jun 16 05:16:31 AEST 2016 ppc64 GNU/Linux

michael at 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 at cogito:~$ zgrep RADIX /proc/config.gz 
CONFIG_PPC_RADIX_MMU=y

michael at 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



More information about the Linuxppc-dev mailing list