1. 出现“timeout when waiting for flip irq”后,我们的倒车影像就出不来了。据同事描述,以前的产品貌似没有这个现象。
2. 还有我们这边目前1G ram,内存不足(这个要准备再添加1G ram),很容易导致ipu channerl的两个vf申请内存失败,这个我这边咱们做了规避处理,在开机的时候就固定内存分配,然后一直不释放。
具体代码位置:
ipu_prp_vf_sdc.cp:static int prpvf_start(void *private)
cam->vf_bufs_size[0] = PAGE_ALIGN(size);
cam->vf_bufs_vaddr[0] = (void *)dma_alloc_coherent(0,
cam->vf_bufs_size[0],
(dma_addr_t *) &
cam->vf_bufs[0],
GFP_DMA |
GFP_KERNEL);
if (cam->vf_bufs_vaddr[0] == NULL) {
printk(KERN_ERR "Error to allocate vf buffer\n");
err = -ENOMEM;
cam->vf_bufs_flag = false;
goto out_4;
}
我计算了下,这两个vf bufs,每一个仅仅需要不到1M的内存,难道真的跟系统内存不够有关系吗?
下面是内存域结构:
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] DMA : 0xfbe00000 - 0xffe00000 ( 64 MB)
[ 0.000000] vmalloc : 0xd9800000 - 0xf2000000 ( 392 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd9000000 ( 400 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .init : 0xc0008000 - 0xc0039000 ( 196 kB)
[ 0.000000] .text : 0xc0039000 - 0xc0603128 (5929 kB)
[ 0.000000] .data : 0xc0604000 - 0xc0655b50 ( 327 kB)
[ 0.000000] .bss : 0xc0655b74 - 0xc07dec58 (1573 kB)
[ 0.000000] Preemptible hierarchical RCU implementation.
|