eclipse 编译内核模块_搭建基于qemu + eclipse的kernel调试环境(by quqi99)

本文详细介绍了如何使用eclipse和qemu搭建Linux内核调试环境,并通过具体例子分析了一个由于内存分配失败导致的系统警告。在分析过程中,展示了内存分配模式、调用栈以及系统资源状态,揭示了问题并非由初始假设的进程引起,而是由于网络设备在分配接收缓存时遇到问题。通过对内存区间的详细解读,辅助理解问题原因。
摘要由CSDN通过智能技术生成

#GFP_ATOMIC=0x4020。意思是:the caller cannot sleep and wait for memory to be made available

[3387282.901263] ceph-osd: page allocation failure: order:2, mode:0x4020

[3387282.901271] Pid: 10125, comm: ceph-osd Tainted: G         C   3.2.0-51-generic #77-Ubuntu

#堆栈说明错误并非開始想象的是由ceph-osd造成的, 而是一个网络设备在分配接收缓存

#上面的order:2说明在分配2的2次方的pages(共16K bytes),为mtu=9000大帧分配的。可是找不着连续的16K的内存了。

[3387282.901274] Call Trace:

[3387282.901277]    [] warn_alloc_failed+0xf6/0x150

[3387282.901294]  [] ? sk_reset_timer+0x1c/0x30

[3387282.901301]  [] ?

tcp_send_delayed_ack+0xe3/0xf0

[3387282.901308]  [] ? __tcp_ack_snd_check+0x70/0xa0

[3387282.901314]  [] __alloc_pages_nodemask+0x6d7/0x8f0

[3387282.901320]  [] ? tcp_v4_do_rcv+0xff/0x1d0

[3387282.901330]  [] kmalloc_large_node+0x57/0x85

[3387282.901338]  [] __kmalloc_node_track_caller+0x195/0x1e0

[3387282.901344]  [] ?

__alloc_skb+0x4b/0x240

[3387282.901349]  [] ? __netdev_alloc_skb+0x24/0x50

[3387282.901354]  [] __alloc_skb+0x78/0x240

[3387282.901359]  [] __netdev_alloc_skb+0x24/0x50

[3387282.901373]  [] ixgbe_alloc_rx_buffers+0x289/0x350 [ixgbe]

[3387282.901380]  [] ?

napi_skb_finish+0x50/0x70

[3387282.901385]  [] ? napi_gro_receive+0xf5/0x140

[3387282.901393]  [] ixgbe_clean_rx_irq+0x7eb/0x8a0 [ixgbe]

[3387282.901401]  [] ixgbe_poll+0xae/0x1a0 [ixgbe]

[3387282.901406]  [] net_rx_action+0x134/0x290

[3387282.901412]  [] ? isolate_migratepages+0x333/0x660

[3387282.901418]  [] __do_softirq+0xa8/0x210

[3387282.901425]  [] ?

_raw_spin_lock+0xe/0x20

[3387282.901432]  [] call_softirq+0x1c/0x30

[3387282.901439]  [] do_softirq+0x65/0xa0

[3387282.901444]  [] irq_exit+0x8e/0xb0

[3387282.901450]  [] do_IRQ+0x63/0xe0

[3387282.901455]  [] common_interrupt&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值