kmalloc fail导致系统异常

如果在中断ISR中间有作memory alloc的动作,有可能会遇到如下的BUG log信息,分析如下:

1  ISR中不能存在任何可调度的动作,如sleep等

2  在ISR中申请memory时,最好尽量使用 kmalloc(xxx, GFP_ATOMIC), 而不要使用kmalloc(xxx, GFP_KERNEL), 因为GFP_KERNEL是可以被打断的,如果因memory not enough 或其他原因alloc fail掉,则kmalloc动作将会被调度走,并等待下一次alloc, 这样就会导致kernel BUG.


[80572.488640] BUG: scheduling while atomic: BGM/821/0x40000103

[80572.494232] Modules linked in: snd_mtk mali_kbase(O) ump(O) kds(O) mtk_mmap(PO) usbhid usb_storage mtk_hcd ntfs btmtk_usb mt7662u_sta(O) driver_cli(PO) mtk_mod(PO) fusion(O)
[80572.509686] CPU: 1 PID: 821 Comm: BGM Tainted: P        W  O 3.10.79 #1
[80572.516296] [<c0012d24>] (unwind_backtrace+0x0/0xdc) from [<c0010db0>] (show_stack+0x10/0x14)
[80572.524793] [<c0010db0>] (show_stack+0x10/0x14) from [<c037d720>] (__schedule_bug+0x48/0x64)
[80572.53321
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值