Hello,l4-hackers,
We are working at porting fiasco to s5pv210 platform. Now, we encounter a unstable problem when fiasco booting. Sometimes, the system seems ok. But more often, the system dead in different places when start moe. We trace the program and find that the system halts in function "handle_page_fault" of sigma0(dir=/l4/pkg/sigma0/server/src/memmap.cc). The log is described more specifically as following:
case 1: Page fault ........ Calibrating timer loop... done. SIGMA0: Hello! KIP @ 20002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:20000000;20000fff] [0:20065000;2008ffff] [0:20097000;20097fff] [0:2009f000;2013ffff] [4:20140000;20171fff] [0:20172000;20177fff] [4:20178000;2018efff] [0:2018f000;21010fff] [4:21011000;21011fff] [0:21012000;210fffff] [4:21100000;21133fff] [0:21134000;3effffff] IOMEM:---------------------- [0:0;1fffffff] [0:40000000;ffffffff] SIGMA0: alloc addr ok, addr is 20140000 //which we add in func handle_page_fault SIGMA0: alloc addr ok, addr is 2017d000 SIGMA0: alloc addr ok, addr is 20167000 SIGMA0: alloc addr ok, addr is 2018e000 SIGMA0: alloc addr ok, addr is 20166000 SIGMA0: alloc addr ok, addr is 20179000 SIGMA0: alloc addr ok, addr is 20178000 SIGMA0: alloc addr ok, addr is 2018d000 SIGMA0: alloc addr ok, addr is 20145000 SIGMA0: alloc addr ok, addr is 20163000 SIGMA0: alloc addr ok, addr is 20162000 SIGMA0: alloc addr ok, addr is 20141000 SIGMA0: alloc addr ok, addr is 20164000 SIGMA0: alloc addr ok, addr is 20143000 SIGMA0: alloc addr ok, addr is 20149000 SIGMA0: alloc addr ok, addr is 2014a000 SIGMA0: alloc addr ok, addr is 2017e000 SIGMA0: alloc addr ok, addr is 20153000 SIGMA0: alloc addr ok, addr is 2014b000 SIGMA0: alloc addr ok, addr is 2014d000 SIGMA0: alloc addr ok, addr is 2014e000 SIGMA0: alloc addr ok, addr is 2014f000 SIGMA0: alloc addr ok, addr is 20150000 SIGMA0: alloc addr ok, addr is 20152000 SIGMA0: alloc addr ok, addr is 20154000 SIGMA0: alloc addr ok, addr is 20155000 SIGMA0: alloc addr ok, addr is 20156000 SIGMA0: alloc addr ok, addr is 20160000 SIGMA0: alloc addr ok, addr is 20168000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2016e000 SIGMA0: alloc addr ok, addr is 2016f000 SIGMA0: alloc addr ok, addr is 20169000 SIGMA0: alloc addr ok, addr is 2016c000 SIGMA0: alloc addr ok, addr is 2016b000 MOE: Hello world SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 // endless loop SIGMA0: Page fault, did not find page at 200020e0 for 4
case 2: alloc ok ...... IOMEM:---------------------- [0:0;1fffffff] [0:40000000;ffffffff] SIGMA0: alloc addr ok, addr is 20140000 SIGMA0: alloc addr ok, addr is 2017d000 SIGMA0: alloc addr ok, addr is 20167000 SIGMA0: alloc addr ok, addr is 2018e000 SIGMA0: alloc addr ok, addr is 20166000 SIGMA0: alloc addr ok, addr is 20179000 SIGMA0: alloc addr ok, addr is 20178000 SIGMA0: alloc addr ok, addr is 2018d000 SIGMA0: alloc addr ok, addr is 20145000 SIGMA0: alloc addr ok, addr is 20163000 SIGMA0: alloc addr ok, addr is 20162000 SIGMA0: alloc addr ok, addr is 20141000 SIGMA0: alloc addr ok, addr is 20164000 SIGMA0: alloc addr ok, addr is 20143000 SIGMA0: alloc addr ok, addr is 20149000 SIGMA0: alloc addr ok, addr is 2014a000 SIGMA0: alloc addr ok, addr is 2017e000 SIGMA0: alloc addr ok, addr is 20153000 SIGMA0: alloc addr ok, addr is 2014b000 SIGMA0: alloc addr ok, addr is 2014d000 SIGMA0: alloc addr ok, addr is 2014e000 SIGMA0: alloc addr ok, addr is 2014f000 SIGMA0: alloc addr ok, addr is 20150000 SIGMA0: alloc addr ok, addr is 20152000 SIGMA0: alloc addr ok, addr is 20154000 SIGMA0: alloc addr ok, addr is 20155000 SIGMA0: alloc addr ok, addr is 20156000 SIGMA0: alloc addr ok, addr is 20160000 SIGMA0: alloc addr ok, addr is 20168000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2017c000 //endless loop
Who can give some guidance or suggestion?
Steven Meng
--------------------------------------------------------------------------------------------------- Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s) is intended only for the use of the intended recipient and may be confidential and/or privileged of Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is not the intended recipient, unauthorized use, forwarding, printing, storing, disclosure or copying is strictly prohibited, and may be unlawful.If you have received this communication in error,please immediately notify the sender by return e-mail, and delete the original message and all copies from your system. Thank you. ---------------------------------------------------------------------------------------------------
On Tue Feb 26, 2013 at 19:33:49 +0800, meng-qy wrote:
Hello,l4-hackers,
We are working at porting fiasco to s5pv210 platform. Now, we
encounter a unstable problem when fiasco booting. Sometimes, the system seems ok. But more often, the system dead in different places when start moe. We trace the program and find that the system halts in function "handle_page_fault" of sigma0(dir=/l4/pkg/sigma0/server/src/memmap.cc). The log is described more specifically as following:
case 1: Page fault ........ Calibrating timer loop... done. SIGMA0: Hello! KIP @ 20002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:20000000;20000fff] [0:20065000;2008ffff] [0:20097000;20097fff] [0:2009f000;2013ffff] [4:20140000;20171fff] [0:20172000;20177fff] [4:20178000;2018efff] [0:2018f000;21010fff] [4:21011000;21011fff] [0:21012000;210fffff] [4:21100000;21133fff] [0:21134000;3effffff] IOMEM:---------------------- [0:0;1fffffff] [0:40000000;ffffffff] SIGMA0: alloc addr ok, addr is 20140000 //which we add in func handle_page_fault SIGMA0: alloc addr ok, addr is 2017d000 SIGMA0: alloc addr ok, addr is 2017c000 SIGMA0: alloc addr ok, addr is 2016e000 SIGMA0: alloc addr ok, addr is 2016f000 SIGMA0: alloc addr ok, addr is 20169000 SIGMA0: alloc addr ok, addr is 2016c000 SIGMA0: alloc addr ok, addr is 2016b000 MOE: Hello world SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 SIGMA0: Page fault, did not find page at 200020e0 for 4 // endless loop SIGMA0: Page fault, did not find page at 200020e0 for 4
The second case smells like cache/tlb issue but I wouldn't understand why this would be a problem. And the case above looks rather not like that. 20002000 is the kip and there should not be a page-fault there. In jdb, you should log page-faults (P*) to check (with shift-T) for any repeating patterns (e.g. same pc or similar).
Adam
l4-hackers@os.inf.tu-dresden.de