On node 0 totalpages: 196608
!!!!! error !!!!!
filename:mm/memory.c
line:284
function:alloc_node_mem_map
===========================================================================================
qumu 虚拟机
On node 0 totalpages: 196608
[Normal zone]: 3072 pages used for memmap
irq_init start
irq_init done
===========================================================================================
看上去貌似在bit_scan死了,查看bit_off是否为-1 是-1,确实是bit_scan哪里出错了
- bit_scan函数出错
- reserve_phy_pool.bits 那块地方不能访问
- reserve_phy_pool.bits 的那块内存已被污染
- reserve_phy_pool所在内存被污染
1: 1a因为count没有达到bit_cnt运行后退出 打印bit_idx、count
2:bit_scan返回了,如果是不能访问,那么应该立即出错,不会返回。
/**** 正确原因 *****/
3:刚开始内存没申请多少,bit_byte不大,打印看看
bit_byte=0,如果被污染bit_byte不会这么小
打印btmp->bits[bit_idx/8]
后发现很多1,应该是0才对,可能是没有初始化的原因
初始化后解决此问题
4:已经查看过参数paddr_start没错,被污染可能性不大 4a:打印出reserve_phy_pool的地址 reserve_phy_pool at 9000000090030018 4b:打印出btmp.bits、btmp.btmp_bytes_len查看与刚初始化时是否相同 是相同的,reserve_phy_pool没有被污染 paddr_start:9000000000006000 len:7ffa bits:9000000000002000
===========================================================================================
卡在 pci_init
[Normal zone]: 3072 pages used for memmap
irq_init start
irq_init done
pci_init start
!!!!!!! exception message begin !!!!!!!!
intr_table[4b]: unknown happened
!!!!!!! exception message end !!!!!!!!
0x4b是时钟中断 1.时钟中断还没初始化完就触发了 更改了timer_init的位置 新问题:
!!!!! error !!!!!
filename:drivers/timer.c
line:32
function:intr_timer_handler
1.函数栈位置有问题,压栈破坏 2.未初始化 thread_init中make_main_thread中赋值task_struct。 交换thread_init 与 到timer_init前面
再次卡在 pci_init
[Normal zone]: 3072 pages used for memmap
irq_init start
irq_init done
pci_init start
尝试定位,缩小范围... 在 执行
pci_write_config(PCI_CONFIG0_BASE,bus, device, function, reg, (int *)0xffffffff);
时卡住。
===========================================================================================
卡在pci_init
处:
pci_init
卡在pci_scan_buses()
中,bus: 0, device: 13, function: 1时处理函数疑似有问题?
某些pci设备寄存器设置有问题。
===========================================================================================
读驱动设置 PORT_CLB 寄存器向其中写入失败。
左:开发板 右:docker
原因:板子上端口0的命令引擎未正常开启,正常开启应该为0xc017