[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] arm: alloc_heap_pages allocates already allocated page



Hi,

   I am seeing below panic with NUMA during DT mappings in alloc_heap_pages()
BUG_ON(pg[i].count_info != PGC_state_free);
However, this issue is not there with 4.7 version. The same NUMA board
boots fine.
With 4.8 or staging I see below panic.

I have add print in alloc_heap_pages to print page_to_mfn(pg) and
before and after calling
map_range_to_domain() DT mapping.
It shows that 0x83e22a is returned for multiple alloc_heap_page requests.

Request 1:
(XEN) Going to map  - MMIO: 97e0c6000000 - 980000000000 P2MType=5
(XEN) In alloc_heap_pages pg start 0x83e22a pg end 0x83e22a  <== pg is same here
(XEN)   - MMIO: 97e0c6000000 - 980000000000 P2MType=5

Request 2:
(XEN) Going to map  - MMIO: 97e005003800 - 97e005003830 P2MType=5
(XEN) In alloc_heap_pages pg start 0x83e22a pg end 0x83e22a  <=== pg
is same here
(XEN)   - MMIO: 97e005003800 - 97e005003830 P2MType=5

Request 3:
(XEN) Going to map  - MMIO: 949000000000 - 949002000000 P2MType=5
(XEN) In alloc_heap_pages pg start 0x83e22a pg end 0x83e22a <=== pg is same here

Log:

(XEN) DT: one level translation:<3> 000097e0<3> c6000000<3>
(XEN) DT: reached root node
(XEN) Going to map  - MMIO: 97e0c6000000 - 980000000000 P2MType=5
(XEN) In alloc_heap_pages pg start 0x83e22a pg end 0x83e22a
(XEN)   - MMIO: 97e0c6000000 - 980000000000 P2MType=5
(XEN) handle /soc@100000000000/pci@848000000000/mrml-bridge@1,0
(XEN) dt_irq_number: dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0
(XEN) /soc@100000000000/pci@848000000000/mrml-bridge@1,0 passthrough =
1 nirq = 0 naddr = 0
(XEN) Mapping children of
/soc@100000000000/pci@848000000000/mrml-bridge@1,0 to guest
(XEN) dt_for_each_irq_map:
par=/soc@100000000000/pci@848000000000/mrml-bridge@1,0
cb=0000000000248b30 data=000080083ee04000
(XEN) dt_for_each_irq_map: ipar=/interrupt-controller@801000000000, size=3
(XEN)  -> addrsize=2
(XEN)  -> no map, ignoring
(XEN) dt_for_each_range: dev=mrml-bridge, bus=pci, parent=pci, rlen=8, rone=8
(XEN) DT: ** translation for device
/soc@100000000000/pci@848000000000/mrml-bridge@1,0 **
(XEN) DT: bus is pci (na=3, ns=2) on /soc@100000000000/pci@848000000000
(XEN) DT: translating address:<3> 03000000<3> 000087e0<3> 00000000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /soc@100000000000
(XEN) DT: walking ranges...
(XEN) DT: PCI map, cp=802000000000, s=6000000000, da=87e000000000
(XEN) DT: PCI map, cp=838000000000, s=a000000000, da=87e000000000
(XEN) DT: PCI map, cp=846000000000, s=2000000000, da=87e000000000
(XEN) DT: PCI map, cp=868000000000, s=16024000000, da=87e000000000
(XEN) DT: parent translation for:<3> 00008680<3> 00000000<3>
(XEN) DT: with offset: 16000000000
(XEN) DT: one level translation:<3> 000087e0<3> 00000000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: walking ranges...
(XEN) DT: default map, cp=800000000000, s=100000000000, da=87e000000000
(XEN) DT: parent translation for:<3> 00009000<3> 00000000<3>
(XEN) DT: with offset: 7e000000000
(XEN) DT: one level translation:<3> 000097e0<3> 00000000<3>
(XEN) DT: reached root node
(XEN) Going to map  - MMIO: 97e000000000 - 97f000000000 P2MType=5
(XEN)   - MMIO: 97e000000000 - 97f000000000 P2MType=5
(XEN) handle /soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3
(XEN) dt_irq_number:
dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3
(XEN) /soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3
passthrough = 1 nirq = 0 naddr = 1
(XEN) DT: ** translation for device
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3 **
(XEN) DT: bus is pci (na=3, ns=2) on
/soc@100000000000/pci@848000000000/mrml-bridge@1,0
(XEN) DT: translating address:<3> 03000000<3> 000087e0<3> 05000000<3>
(XEN) DT: parent bus is pci (na=3, ns=2) on /soc@100000000000/pci@848000000000
(XEN) DT: walking ranges...
(XEN) DT: PCI map, cp=87e000000000, s=1000000000, da=87e005000000
(XEN) DT: parent translation for:<3> 03000000<3> 000087e0<3> 00000000<3>
(XEN) DT: with offset: 5000000
(XEN) DT: one level translation:<3> 03000000<3> 000087e0<3> 05000000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /soc@100000000000
(XEN) DT: walking ranges...
(XEN) DT: PCI map, cp=802000000000, s=6000000000, da=87e005000000
(XEN) DT: PCI map, cp=838000000000, s=a000000000, da=87e005000000
(XEN) DT: PCI map, cp=846000000000, s=2000000000, da=87e005000000
(XEN) DT: PCI map, cp=868000000000, s=16024000000, da=87e005000000
(XEN) DT: parent translation for:<3> 00008680<3> 00000000<3>
(XEN) DT: with offset: 16005000000
(XEN) DT: one level translation:<3> 000087e0<3> 05000000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: walking ranges...
(XEN) DT: default map, cp=800000000000, s=100000000000, da=87e005000000
(XEN) DT: parent translation for:<3> 00009000<3> 00000000<3>
(XEN) DT: with offset: 7e005000000
(XEN) DT: one level translation:<3> 000097e0<3> 05000000<3>
(XEN) DT: reached root node
(XEN) Going to map  - MMIO: 97e005000000 - 97e005800000 P2MType=5
(XEN) In alloc_heap_pages pg start 0x83e22b pg end 0x83e22b
(XEN)   - MMIO: 97e005000000 - 97e005800000 P2MType=5
(XEN) handle 
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e05003800
(XEN) dt_irq_number:
dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e05003800
(XEN) 
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e05003800
passthrough = 1 nirq = 0 naddr = 1
(XEN) DT: ** translation for device
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e05003800
**
(XEN) DT: bus is default (na=2, ns=2) on
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3
(XEN) DT: translating address:<3> 000087e0<3> 05003800<3>
(XEN) DT: parent bus is pci (na=3, ns=2) on
/soc@100000000000/pci@848000000000/mrml-bridge@1,0
(XEN) DT: walking ranges...
(XEN) DT: default map, cp=87e005000000, s=800000, da=87e005003800
(XEN) DT: parent translation for:<3> 03000000<3> 000087e0<3> 05000000<3>
(XEN) DT: with offset: 3800
(XEN) DT: one level translation:<3> 03000000<3> 000087e0<3> 05003800<3>
(XEN) DT: parent bus is pci (na=3, ns=2) on /soc@100000000000/pci@848000000000
(XEN) DT: walking ranges...
(XEN) DT: PCI map, cp=87e000000000, s=1000000000, da=87e005003800
(XEN) DT: parent translation for:<3> 03000000<3> 000087e0<3> 00000000<3>
(XEN) DT: with offset: 5003800
(XEN) DT: one level translation:<3> 03000000<3> 000087e0<3> 05003800<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /soc@100000000000
(XEN) DT: walking ranges...
(XEN) DT: PCI map, cp=802000000000, s=6000000000, da=87e005003800
(XEN) DT: PCI map, cp=838000000000, s=a000000000, da=87e005003800
(XEN) DT: PCI map, cp=846000000000, s=2000000000, da=87e005003800
(XEN) DT: PCI map, cp=868000000000, s=16024000000, da=87e005003800
(XEN) DT: parent translation for:<3> 00008680<3> 00000000<3>
(XEN) DT: with offset: 16005003800
(XEN) DT: one level translation:<3> 000087e0<3> 05003800<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: walking ranges...
(XEN) DT: default map, cp=800000000000, s=100000000000, da=87e005003800
(XEN) DT: parent translation for:<3> 00009000<3> 00000000<3>
(XEN) DT: with offset: 7e005003800
(XEN) DT: one level translation:<3> 000097e0<3> 05003800<3>
(XEN) DT: reached root node
(XEN) Going to map  - MMIO: 97e005003800 - 97e005003830 P2MType=5
(XEN) In alloc_heap_pages pg start 0x83e22a pg end 0x83e22a
(XEN)   - MMIO: 97e005003800 - 97e005003830 P2MType=5
(XEN) handle 
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e05003800/xfi20
(XEN) dt_irq_number:
dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e05003800/xfi20
(XEN) 
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e05003800/xfi20
passthrough = 1 nirq = 0 naddr = 0
(XEN) handle 
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e005003880
(XEN) dt_irq_number:
dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e005003880
(XEN) 
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e005003880
passthrough = 1 nirq = 0 naddr = 1
(XEN) DT: ** translation for device
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3/mdio@87e005003880
**
(XEN) DT: bus is default (na=2, ns=2) on
/soc@100000000000/pci@848000000000/mrml-bridge@1,0/mdio-nexus@1,3
(XEN) DT: translating address:<3> 000087e0<3> 05003880<3>
(XEN) DT: parent bus is pci (na=3, ns=2) on
/soc@100000000000/pci@848000000000/mrml-bridge@1,0
(XEN) DT: walking ranges...
(XEN) DT: default map, cp=87e005000000, s=800000, da=87e005003880
(XEN) DT: parent translation for:<3> 03000000<3> 000087e0<3> 05000000<3>
(XEN) DT: with offset: 3880
(XEN) DT: one level translation:<3> 03000000<3> 000087e0<3> 05003880<3>
(XEN) DT: parent bus is pci (na=3, ns=2) on /soc@100000000000/pci@848000000000
(XEN) DT: walking ranges...
(XEN) DT: PCI map, cp=87e000000000, s=1000000000, da=87e005003880
(XEN) DT: parent translation for:<3> 03000000<3> 000087e0<3> 00000000<3>
(XEN) DT: with offset: 5003880
(XEN) DT: one level translation:<3> 03000000<3> 000087e0<3> 05003880<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /soc@100000000000
(XEN) DT: walking ranges...
(XEN) DT: PCI map, cp=802000000000, s=6000000000, da=87e005003880
(XEN) DT: PCI map, cp=838000000000, s=a000000000, da=87e005003880
(XEN) DT: PCI map, cp=846000000000, s=2000000000, da=87e005003880
(XEN) DT: PCI map, cp=868000000000, s=16024000000, da=87e005003880
(XEN) DT: parent translation for:<3> 00008680<3> 00000000<3>
(XEN) DT: with offset: 16005003880
(XEN) DT: one level translation:<3> 000087e0<3> 05003880<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: walking ranges...
(XEN) DT: default map, cp=800000000000, s=100000000000, da=87e005003880
(XEN) DT: parent translation for:<3> 00009000<3> 00000000<3>
(XEN) DT: with offset: 7e005003880
(XEN) DT: one level translation:<3> 000097e0<3> 05003880<3>
(XEN) DT: reached root node
(XEN) Going to map  - MMIO: 97e005003880 - 97e0050038b0 P2MType=5
(XEN)   - MMIO: 97e005003880 - 97e0050038b0 P2MType=5
(XEN) handle /soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx2
(XEN) dt_irq_number: dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx2
(XEN) /soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx2
passthrough = 1 nirq = 0 naddr = 0
(XEN) handle /soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx2/xfi20
(XEN) dt_irq_number:
dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx2/xfi20
(XEN) /soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx2/xfi20
passthrough = 1 nirq = 0 naddr = 0
(XEN) handle /soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx3
(XEN) dt_irq_number: dev=/soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx3
(XEN) /soc@100000000000/pci@848000000000/mrml-bridge@1,0/bgx3
passthrough = 1 nirq = 0 naddr = 0
(XEN) handle /soc@100000000000/pci@849000000000
(XEN) dt_irq_number: dev=/soc@100000000000/pci@849000000000
(XEN) /soc@100000000000/pci@849000000000 passthrough = 1 nirq = 0 naddr = 1
(XEN) DT: ** translation for device /soc@100000000000/pci@849000000000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc@100000000000
(XEN) DT: translating address:<3> 00008490<3> 00000000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: walking ranges...
(XEN) DT: default map, cp=800000000000, s=100000000000, da=849000000000
(XEN) DT: parent translation for:<3> 00009000<3> 00000000<3>
(XEN) DT: with offset: 49000000000
(XEN) DT: one level translation:<3> 00009490<3> 00000000<3>
(XEN) DT: reached root node
(XEN) Going to map  - MMIO: 949000000000 - 949002000000 P2MType=5
(XEN) In alloc_heap_pages pg start 0x83e22a pg end 0x83e22a
(XEN) Xen BUG at page_alloc.c:870
(XEN) ----[ Xen-4.9-unstable  arm64  debug=y   Not tainted ]----
(XEN) CPU:    0
(XEN) PC:     000000000021aab0 page_alloc.c#alloc_heap_pages+0x6b0/0x7c4
(XEN) LR:     000000000021aaa4
(XEN) SP:     00000000002c70e0
(XEN) CPSR:   80000249 MODE:64-bit EL2h (Hypervisor, handler)
(XEN)      X0: 0000000000000000  X1: 0000000000005434  X2: 0000000000000001
(XEN)      X3: 0000000000000000  X4: 0000000000000010  X5: 0000000000000000
(XEN)      X6: 0000000000000004  X7: 0000000000000006  X8: 00000000fffffff8
(XEN)      X9: 0000000000000010 X10: 0000000000000038 X11: 00000000002c6e58
(XEN)     X12: 0000000000000006 X13: 000000000026b0f8 X14: 0000000000000020
(XEN)     X15: 0000000000000000 X16: 0000000000000000 X17: 0000000000000000
(XEN)     X18: 0000000000000002 X19: 0000000820f38a80 X20: 0000000820f38a90
(XEN)     X21: 0000000820f38a90 X22: 0000000820f38ad0 X23: 0180000000000000
(XEN)     X24: 000000000026a8c8 X25: 0000000000000000 X26: 000000000083ce2a
(XEN)     X27: 0000000000000000 X28: 000000000027d0c0  FP: 00000000002c70e0
(XEN)
(XEN)   VTCR_EL2: 800d3590
(XEN)  VTTBR_EL2: 0000000000000000
(XEN)
(XEN)  SCTLR_EL2: 30c5183d
(XEN)    HCR_EL2: 000000008038663f
(XEN)  TTBR0_EL2: 0000010fffcfe000
(XEN)
(XEN)    ESR_EL2: f2000001
(XEN)  HPFAR_EL2: 0000000000000000
(XEN)    FAR_EL2: 0000000000000000
(XEN)
(XEN) Xen stack trace from sp=00000000002c70e0:
(XEN)    00000000002c7180 000000000021bfc4 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000949000000 0000000000000024 000080083ee04208
(XEN)    000080083e7b3200 0000000000000002 0000000000000000 0000000000000009
(XEN)    0000000000000000 00000000002d1180 0000000000000000 0000000000000014
(XEN)    0000000000288558 0000000000287570 00000000002c7190 0000000000000003
(XEN)    00000000002c71c0 0000000000253988 000080083e7b3000 0000000000000200
(XEN)    0000000000000040 0000000949000000 00000000002c72a8 00000000000002c0
(XEN)    00000000002c7210 0000000000254158 0000000000000001 000080083ee04208
(XEN)    0000000949000000 0000000949000000 0000000000000009 0000000000000012
(XEN)    0000000000000007 0000000000000002 00000000002c72b0 0000000000254ac8
(XEN)    0000000000000009 0000000949000000 0000000000002000 0000000949000000
(XEN)    000080083ee04208 0000000000000012 0000000000000007 0000000000000001
(XEN)    0000000000000000 0000000000000009 0000000002000000 0000000549000000
(XEN)    000080083ee04000 0000000000000000 0000000000282478 0000004000000129
(XEN)    0000000000000000 000080083e7b3000 00000000002c7320 0000000000254b84
(XEN)    000080083ee04000 000080083ee04208 0000000949000000 0000000000002000
(XEN)    0000000949000000 0000000000000005 000080083ee04000 0000000000000000
(XEN)    0000000000282478 0000000000000001 00000000002c7320 00000005ffffffc8
(XEN)    00000000002c7360 0000000000248acc 000080083ffd5350 0000949000000000
(XEN)    0000949002000000 00000000002c7448 0000000002000000 0000000949000000
(XEN)    00000000002c73b0 00000000002493ac 000080083ffd5350 0000000000000000
(XEN)    000080083ffd53d8 0000000000000000 000080083ee04000 0000000000000005
(XEN)    00000000002c76a8 0000000000000000 00000000002c7480 0000000000249774
(XEN)    000080083ffd3dc0 0000000000000000 000080083ffd5350 0000801ffffb0034
(XEN)    000080083ee04000 0000000000000005 00000000002c76a8 0000000000000004
(XEN)    0000000000282478 000000000027b230 00000000002c7440 00000000ffffffc8
(XEN)    0000000000000001 0000000000000000 0000949000000000 0000000002000000
(XEN)    00000000002c7470 000080083ee04000 0000800800000005 000080083ffd0c28
(XEN)    0000000000000003 0000000400000053 00000000002c7480 0000000000249664
(XEN)    00000000002c7550 0000000000249774 000080083ffc0000 0000000000000000
(XEN)    000080083ffd3dc0 0000801ffffa809c 000080083ee04000 0000000000000005
(XEN)    00000000002c76a8 000000000000001d 0000000000282478 000000000027b230
(XEN)    0000000000011000 00000000fffa809c 00000000002b08b0 0000000000000000
(XEN)    0000000000000010 0000000000000004 00000000002c7540 000080083ee04000
(XEN)    0000800800000005 0d00000003000000 01000000080f0000 080f00000e000000
(XEN)    0b00000001000000 00000000080f0000 00000000002c7620 000000000024a244
(XEN)    000080083ee04000 000080083ed7c000 000080083ed77eb0 0000000000011090
(XEN)    0000010fffc00000 00000000002827c0 0000000020000000 0000000001400000
(XEN)    0000011000000000 0000000000000019 000080083ed40000 0000000000008000
(XEN)    00000000002b08b0 0000000000000000 00000000002c7620 000000000024a210
(XEN) Xen call trace:
(XEN)    [<000000000021aab0>] page_alloc.c#alloc_heap_pages+0x6b0/0x7c4 (PC)
(XEN)    [<000000000021aaa4>] page_alloc.c#alloc_heap_pages+0x6a4/0x7c4 (LR)
(XEN)    [<000000000021bfc4>] alloc_domheap_pages+0xc4/0x154
(XEN)    [<0000000000253988>] p2m.c#p2m_next_level+0x50/0x268
(XEN)    [<0000000000254158>] p2m.c#__p2m_set_entry+0xd8/0x4a4
(XEN)    [<0000000000254ac8>] p2m_set_entry+0x94/0xdc
(XEN)    [<0000000000254b84>] map_regions_p2mt+0x74/0x98
(XEN)    [<0000000000248acc>] domain_build.c#map_range_to_domain+0xb4/0x118
(XEN)    [<00000000002493ac>] domain_build.c#handle_node+0x6f0/0x1188
(XEN)    [<0000000000249774>] domain_build.c#handle_node+0xab8/0x1188
(XEN)    [<0000000000249774>] domain_build.c#handle_node+0xab8/0x1188
(XEN)    [<000000000024a244>] construct_dom0+0x400/0x940
(XEN)    [<000000000029b47c>] start_xen+0xc18/0xd2c
(XEN)    [<000000000020061c>] arm64/head.o#paging+0x84/0xbc
(XEN)
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Xen BUG at page_alloc.c:870
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.