Re: Qemu crashes in -next due to 'of: remove *phandle properties from expanded device tree'

From: Guenter Roeck
Date: Thu Jun 15 2017 - 00:13:35 EST


On 06/14/2017 05:45 PM, Frank Rowand wrote:
On 06/14/17 15:35, Guenter Roeck wrote:
On Wed, Jun 14, 2017 at 02:31:58PM -0700, Frank Rowand wrote:
Hi Guenter,

< snip >

Can you also include the console messages before the "[ cut here ]" line?

http://kerneltests.org/builders

Check qemu test results in the 'next' column. ppc and ppc64 show related console
messages.

Thanks for the pointer. Unfortunately I did not see any additional clues (yet)
in the full log.

I tried to compare the failed boot to a good boot, but did not find a console
log for a good boot. I started at the qemu-ppc-next builder page:

http://kerneltests.org/builders/qemu-ppc64-next

and looked at recent tests that were successful (like #645). But the log file
link from that test does not show the contents of the console for tests that
pass. Is there some way to see what the console for a successful test looks
like?

-Frank

Good (v4.12-rc4):

...
NR_IRQS:512 nr_irqs:512 16
OF: Checking node /
OF: node '/' compatible '' type 'open-pic' name '' score 0
OF: node '/' compatible 'open-pic' type '' name '' score 0
OF: Checking node /pci@e0008000
OF: node '/pci@e0008000' compatible '' type 'open-pic' name '' score 0
OF: node '/pci@e0008000' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000
OF: node '/soc@e0000000' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/msi@41600
OF: node '/soc@e0000000/msi@41600' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/msi@41600' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/global-utilities@e0000
OF: node '/soc@e0000000/global-utilities@e0000' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/global-utilities@e0000' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/serial@4500
OF: node '/soc@e0000000/serial@4500' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/serial@4500' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/pic@40000
OF: type match
OF: node '/soc@e0000000/pic@40000' compatible '' type 'open-pic' name '' score 2
OF: node '/soc@e0000000/pic@40000' compatible 'open-pic' type '' name '' score 0
mpic: Setting up MPIC " OpenPIC " version 1.2 at e0040000, max 1 CPUs
mpic: ISU size: 512, shift: 9, mask: 1ff
mpic: Initializing for 512 sources

bad:

NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
OF: Checking node /
OF: node '/' compatible '' type 'open-pic' name '' score 0
OF: node '/' compatible 'open-pic' type '' name '' score 0
OF: Checking node /pci@e0008000
OF: node '/pci@e0008000' compatible '' type 'open-pic' name '' score 0
OF: node '/pci@e0008000' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000
OF: node '/soc@e0000000' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/msi@41600
OF: node '/soc@e0000000/msi@41600' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/msi@41600' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/global-utilities@e0000
OF: node '/soc@e0000000/global-utilities@e0000' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/global-utilities@e0000' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/serial@4500
OF: node '/soc@e0000000/serial@4500' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/serial@4500' compatible 'open-pic' type '' name '' score 0
OF: Checking node /soc@e0000000/pic@40000
OF: node '/soc@e0000000/pic@40000' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/pic@40000' compatible 'open-pic' type '' name '' score 0
OF: Checking node /aliases
OF: node '/aliases' compatible '' type 'open-pic' name '' score 0
OF: node '/aliases' compatible 'open-pic' type '' name '' score 0
OF: Checking node /cpus
OF: node '/cpus' compatible '' type 'open-pic' name '' score 0
OF: node '/cpus' compatible 'open-pic' type '' name '' score 0
OF: Checking node /cpus/PowerPC,8544@0
OF: node '/cpus/PowerPC,8544@0' compatible '' type 'open-pic' name '' score 0
OF: node '/cpus/PowerPC,8544@0' compatible 'open-pic' type '' name '' score 0
OF: Checking node /chosen
OF: node '/chosen' compatible '' type 'open-pic' name '' score 0
OF: node '/chosen' compatible 'open-pic' type '' name '' score 0
OF: Checking node /memory
OF: node '/memory' compatible '' type 'open-pic' name '' score 0
OF: node '/memory' compatible 'open-pic' type '' name '' score 0
No matching open-pic node
------------[ cut here ]------------
kernel BUG at arch/powerpc/platforms/85xx/corenet_generic.c:50!

So, in __of_device_is_compatible(), the difference is in
__of_device_is_compatible() after

/* Matching type is better than matching name */

Further debugging shows that device->type is NULL in the bad case.

OF: Checking node /soc@e0000000/pic@40000
OF: trying type match open-pic - <NULL>
OF: node '/soc@e0000000/pic@40000' compatible '' type 'open-pic' name '' score 0
OF: node '/soc@e0000000/pic@40000' compatible 'open-pic' type '' name '' score 0

Do you need more information ?

Thanks,
Guenter