i40e驱动卸载_I40E网卡BUG引起内核异常重启问题分析

问题描述

线上服务器异常复位,产生了vmcore文件,发现是内核接收报文时,访问了空指针导致,堆栈信息如下:

分析及定位

1、分析vmcore文件

根据core信息,访问异常的代码行:

/usr/src/debug/kernel-3.10.0-327.22.2.el7/linux-3.10.0-327.22.2.el7.x86_64/net/core/dev.c: 3483

通过反汇编异常地址,得到如下信息:

__netif_receive_skb_core反汇编代码如下所示,分析了调用过程,并确认异常寄存器存储的变量信息:

1 crash> dis -l __netif_receive_skb_core2 /usr/src/debug/kernel-3.10.0-327.22.2.el7/linux-3.10.0-327.22.2.el7.x86_64/net/core/dev.c: 3460

3 0xffffffff8152d150 <__netif_receive_skb_core>: nopl 0x0(%rax,%rax,1) [FTRACE NOP]4 0xffffffff8152d155 <__netif_receive_skb_core>: push%rbp5 0xffffffff8152d156 <__netif_receive_skb_core>: mov%rsp,%rbp6 0xffffffff8152d159 <__netif_receive_skb_core>: push%r157 0xffffffff8152d15b <__netif_receive_skb_core>: push%r148 0xffffffff8152d15d <__netif_receive_skb_core>: push%r139 0xffffffff8152d15f <__netif_receive_skb_core>: mov%esi,%r13 ##第二个参数10 0xffffffff8152d162 <__netif_receive_skb_core>: push%r1211 0xffffffff8152d164 <__netif_receive_skb_core>: push%rbx12 0xffffffff8152d165 <__netif_receive_skb_core>: sub$0x28,%rsp13 0xffffffff8152d169 <__netif_receive_skb_core>: mov%rdi,-0x40(%rbp) ## rdi 第一个参数, 即skb参数14 0xffffffff8152d16d <__netif_receive_skb_core>: mov %gs:0x28,%rax15 0xffffffff8152d176 <__netif_receive_skb_core>: mov%rax,-0x30(%rbp)16 0xffffffff8152d17a <__netif_receive_skb_core>: xor%eax,%eax17 0xffffffff8152d17c <__netif_receive_skb_core>: jmpq 0xffffffff8152d650 <__netif_receive_skb_core>18 /usr/src/debug/kernel-3.10.0-327.22.2.el7/linux-3.10.0-327.22.2.el7.x86_64/arch/x86/include/asm/jump_label.h: 16

19 0xffffffff8152d181 <__netif_receive_skb_core>: mov-0x40(%rbp),%r12 ## 把skb值赋值给r1220 0xffffffff8152d185 <__netif_receive_skb_core>: nopl 0x0(%rax,%rax,1)21 /usr/src/debug/kernel-3.10.0-327.22.2.el7/linux-3.10.0-327.22.2.el7.x86_64/include/linux/skbuf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值