免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13602 | 回复: 11
打印 上一主题 下一主题

[内核模块] insmod ko文件时内存不足问题 arm bcm 具体看log [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-01-28 17:54 |只看该作者 |倒序浏览
出错log 望大神指教



# insmod linux-kernel-bde.ko dmasize=8M himem=1
linux_kernel_bde: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
Jan  1 00:06:13 iProc kern.warn kernel: linux_kernel_bde: module license 'Proprietary' taints kernel.
Jan  1 00:06:13 iProc kern.warn kernel: Disabling lock debugging due to kernel taint
# cat /proc/linux-kernel-bde
Broadcom Device Enumerator (linux-kernel-bde)
DMA Memory (high): 8388608 bytes, 0 used, 8388608 free
Devices:
        0 (swi) : AXI Device 0x8344:0x1:0x48000000:194
# insmod linux-uk-proxy.ko
# mknod /dev/linux-uk-proxy c 125 0
# insmod  linux-bcm-diag-full.ko      //这个ko文件比较大
vmap allocation for size 19308544 failed: use vmalloc=<size> to increase size.
vmalloc: allocation failure: 19303074 bytes
insmod: page allocation failure: order:0, mode:0xd0

Backtrace:
[<c000c36c>] (dump_backtrace+0x0/0x10c) from [<c041a30c>] (dump_stack+0x18/0x1c)

r6:deb7e000 r5:00000000 r4:000000d0 r3:c0588dc0
[<c041a2f4>] (dump_stack+0x0/0x1c) from [<c0084d0c>] (warn_alloc_failed+0xd0/0x1
14)
[<c0084c3c>] (warn_alloc_failed+0x0/0x114) from [<c00a2c14>] (__vmalloc_node_ran
ge+0x144/0x1e4)
r3:01268aa2 r2:c04d3f44
r7:ffffffff r6:01268aa2 r5:00000000 r4:c007332c
[<c00a2ad0>] (__vmalloc_node_range+0x0/0x1e4) from [<c000d134>] (module_alloc+0x
44/0x4c)
r8:e2f00588 r7:e2efbdf4 r6:01268aa2 r5:000189eb r4:e308a488
[<c000d0f0>] (module_alloc+0x0/0x4c) from [<c007332c>] (module_alloc_update_boun
ds+0x14/0x64)
[<c0073318>] (module_alloc_update_bounds+0x0/0x64) from [<c0073ac4>] (sys_init_m
odule+0x720/0x19f0)
r6:000189eb r5:000189eb r4:e308a488 r3:0000001b
[<c00733a4>] (sys_init_module+0x0/0x19f0) from [<c00091e0>] (ret_fast_syscall+0x
0/0x30)
Mem-info:
Normal per-cpu:
CPU    0: hi:  186, btch:  31 usd:  77
active_anon:5458 inactive_anon:0 isolated_anon:0
active_file:129 inactive_file:5514 isolated_file:0
unevictable:0 dirty:0 writeback:0 unstable:0
free:106914 slab_reclaimable:41 slab_unreclaimable:419
mapped:109 shmem:0 pagetables:30 bounce:0
Normal free:427656kB min:2836kB low:3544kB high:4252kB active_anon:21832kB inact
ive_anon:0kB active_file:516kB inactive_file:22056kB unevictable:0kB isolated(an
on):0kB isolated(file):0kB present:503936kB mlocked:0kB dirty:0kB writeback:0kB
mapped:436kB shmem:0kB slab_reclaimable:164kB slab_unreclaimable:1676kB kernel_s
tack:248kB pagetables:120kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scan
ned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
Normal: 2*4kB 2*8kB 1*16kB 1*32kB 1*64kB 0*128kB 2*256kB 2*512kB 2*1024kB 3*2048
kB 102*4096kB = 427656kB
5655 total pagecache pages
126976 pages of RAM
107054 free pages
2536 reserved pages
395 slab pages
326 pages shared
0 pages swap cached
Jan  1 00:03:15 iProc kern.warn kernel: vmap allocation for size 19308544 failed
: use vmalloc=<size> to increase size.

insmod: can't insert 'linux-bcm-diag-full.ko': Cannot allocate memory
# Jan  1 00:03:15 iProc kern.warn kernel: vmalloc: allocation failure: 19303074
bytes
Jan  1 00:03:15 iProc kern.warn kernel: insmod: page allocation failure: order:0
, mode:0xd0
Jan  1 00:03:15 iProc kern.warn kernel: Backtrace:
Jan  1 00:03:15 iProc kern.warn kernel: [<c000c36c>] (dump_backtrace+0x0/0x10c)
from [<c041a30c>] (dump_stack+0x18/0x1c)
Jan  1 00:03:15 iProc kern.warn kernel:  r6:deb7e000 r5:00000000 r4:000000d0 r3:
c0588dc0
Jan  1 00:03:15 iProc kern.warn kernel: [<c041a2f4>] (dump_stack+0x0/0x1c) from
[<c0084d0c>] (warn_alloc_failed+0xd0/0x114)
Jan  1 00:03:15 iProc kern.warn kernel: [<c0084c3c>] (warn_alloc_failed+0x0/0x11
4) from [<c00a2c14>] (__vmalloc_node_range+0x144/0x1e4)
Jan  1 00:03:15 iProc kern.warn kernel:  r3:01268aa2 r2:c04d3f44
Jan  1 00:03:15 iProc kern.warn kernel:  r7:ffffffff r6:01268aa2 r5:00000000 r4:
c007332c
Jan  1 00:03:15 iProc kern.warn kernel: [<c00a2ad0>] (__vmalloc_node_range+0x0/0
x1e4) from [<c000d134>] (module_alloc+0x44/0x4c)
Jan  1 00:03:15 iProc kern.warn kernel:  r8:e2f00588 r7:e2efbdf4 r6:01268aa2 r5:
000189eb r4:e308a488
Jan  1 00:03:15 iProc kern.warn kernel: [<c000d0f0>] (module_alloc+0x0/0x4c) fro
m [<c007332c>] (module_alloc_update_bounds+0x14/0x64)
Jan  1 00:03:15 iProc kern.warn kernel: [<c0073318>] (module_alloc_update_bounds
+0x0/0x64) from [<c0073ac4>] (sys_init_module+0x720/0x19f0)
Jan  1 00:03:15 iProc kern.warn kernel:  r6:000189eb r5:000189eb r4:e308a488 r3:
0000001b
Jan  1 00:03:15 iProc kern.warn kernel: [<c00733a4>] (sys_init_module+0x0/0x19f0
) from [<c00091e0>] (ret_fast_syscall+0x0/0x30)
Jan  1 00:03:15 iProc kern.warn kernel: Mem-info:
Jan  1 00:03:15 iProc kern.warn kernel: Normal per-cpu:
Jan  1 00:03:15 iProc kern.warn kernel: CPU    0: hi:  186, btch:  31 usd:  77
Jan  1 00:03:15 iProc kern.warn kernel: active_anon:5458 inactive_anon:0 isolate
d_anon:0
Jan  1 00:03:15 iProc kern.warn kernel:  active_file:129 inactive_file:5514 isol
ated_file:0
Jan  1 00:03:15 iProc kern.warn kernel:  unevictable:0 dirty:0 writeback:0 unsta
ble:0
Jan  1 00:03:15 iProc kern.warn kernel:  free:106914 slab_reclaimable:41 slab_un
reclaimable:419
Jan  1 00:03:15 iProc kern.warn kernel:  mapped:109 shmem:0 pagetables:30 bounce
:0
Jan  1 00:03:15 iProc kern.warn kernel: Normal free:427656kB min:2836kB low:3544
kB high:4252kB active_anon:21832kB inactive_anon:0kB active_file:516kB inactive_
file:22056kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:50393
6kB mlocked:0kB dirty:0kB wr
Jan  1 00:03:15 iProc kern.warn kernel: lowmem_reserve[]: 0 0
Jan  1 00:03:15 iProc kern.warn kernel: Normal: 2*4kB 2*8kB 1*16kB 1*32kB 1*64kB
0*128kB 2*256kB 2*512kB 2*1024kB 3*2048kB 102*4096kB = 427656kB
Jan  1 00:03:15 iProc kern.warn kernel: 5655 total pagecache pages
Jan  1 00:03:15 iProc kern.warn kernel: 126976 pages of RAM
Jan  1 00:03:15 iProc kern.warn kernel: 107054 free pages
Jan  1 00:03:15 iProc kern.warn kernel: 2536 reserved pages
Jan  1 00:03:15 iProc kern.warn kernel: 395 slab pages
Jan  1 00:03:15 iProc kern.warn kernel: 326 pages shared
Jan  1 00:03:15 iProc kern.warn kernel: 0 pages swap cached

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
2 [报告]
发表于 2015-01-28 20:30 |只看该作者
回复 1# manwenbin520


    KO太大了。KO本身的空间也是通过vmalloc分配出来的,因为太大,没法满足,分配不出来了。

你这么大,肯定是因为KO里含有大量的数据。正确的方法是采用固件的方案去存这么数据。

论坛徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
3 [报告]
发表于 2015-01-28 23:20 |只看该作者
回复 2# Tinnal
请教下:正确的方法是采用固件的方案去存这么数据?所谓的固件指的是NVram,flash一类的东西吧。


   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
4 [报告]
发表于 2015-01-29 23:22 |只看该作者
回复 3# 镇水铁牛


  呵呵,固件这个词有歧义。 原来是指在设备内部的固化在flash上的程序(通常是BareMeta程序),对设备的用户不可见。但后来设备厂家想更为灵活的更新设备功能以级降成本。把设备上的flash换成RAM了,这就涉及固件的下载了,同时,固件也变成了PC上的一个文件(通常和HOST驱动打包发布),HOST驱动此时,也就多了一个职责--下载固件。

Linux提供的支持函数为:request_firmware。
关于它的更多资讯,请移步,度娘很美,不是吗?值得你长谈。

论坛徽章:
0
5 [报告]
发表于 2015-02-02 11:59 |只看该作者
回复 2# Tinnal

大神 可以说具体点吗 具体怎么修改 :“正确的方法是采用固件的方案去”怎么处理
   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
6 [报告]
发表于 2015-02-02 14:05 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2015-02-05 17:13 |只看该作者
回复 6# Tinnal
猫大神

那个module 16M的限制能改成32M的限制吗

   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
8 [报告]
发表于 2015-02-05 19:32 |只看该作者
回复 7# manwenbin520

自己去改吧。这是ARM的memory.h里面的。
  1. /*
  2. * PAGE_OFFSET - the virtual address of the start of the kernel image
  3. * TASK_SIZE - the maximum size of a user space task.
  4. * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
  5. */
  6. #define PAGE_OFFSET                UL(CONFIG_PAGE_OFFSET)
  7. #define TASK_SIZE                (UL(CONFIG_PAGE_OFFSET) - UL(0x01000000))
  8. #define TASK_UNMAPPED_BASE        (UL(CONFIG_PAGE_OFFSET) / 3)

  9. /*
  10. * The maximum size of a 26-bit user space task.
  11. */
  12. #define TASK_SIZE_26                UL(0x04000000)

  13. /*
  14. * The module space lives between the addresses given by TASK_SIZE
  15. * and PAGE_OFFSET - it must be within 32MB of the kernel text.
  16. */
  17. #ifndef CONFIG_THUMB2_KERNEL
  18. #define MODULES_VADDR                (PAGE_OFFSET - 16*1024*1024)
  19. #else
  20. /* smaller range for Thumb-2 symbols relocation (2^24)*/
  21. #define MODULES_VADDR                (PAGE_OFFSET - 8*1024*1024)
  22. #endif

  23. #if TASK_SIZE > MODULES_VADDR
  24. #error Top of user space clashes with start of module space
  25. #endif

  26. /*
  27. * The highmem pkmap virtual space shares the end of the module area.
  28. */
  29. #ifdef CONFIG_HIGHMEM
  30. #define MODULES_END                (PAGE_OFFSET - PMD_SIZE)
  31. #else
  32. #define MODULES_END                (PAGE_OFFSET)
  33. #endif
复制代码

论坛徽章:
0
受到警告 9 [报告]
发表于 2015-02-08 17:33 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2015-03-25 14:46 |只看该作者
回复 1# manwenbin520


    楼主,这个问题解决了没?没解决的话,我们沟通下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP