1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| #0 e1000_xmit_frame (skb=0xffff88826911fc00, netdev=0xffff88826820c000) at drivers/net/ethernet/intel/e1000e/netdev.c:5769 #1 0xffffffff816d6f15 in __netdev_start_xmit (more=<optimized out>, dev=<optimized out>, skb=<optimized out>, ops=<optimized out>) at ./include/linux/netdevice.h:4534 #2 netdev_start_xmit (more=<optimized out>, txq=<optimized out>, dev=<optimized out>, skb=<optimized out>) at ./include/linux/netdevice.h:4543 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑进入e1000e的发包流程↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #3 xmit_one (more=<optimized out>, txq=<optimized out>, dev=<optimized out>, skb=<optimized out>) at net/core/dev.c:3261 #4 dev_hard_start_xmit (first=0xffff88826911fc00, dev=0xffff88826820c000, txq=0xffff88826d2f3800, ret=<optimized out>) at net/core/dev.c:3277 #5 0xffffffff81721251 in sch_direct_xmit (skb=0xffff88826911fc00, q=0xffff888266488e00, dev=0xffff88826820c000, txq=0xffff88826d2f3800, root_lock=0xffff888266488eac, validate=<optimized out>) at net/sched/sch_generic.c:312 #6 0xffffffff816d7966 in __dev_xmit_skb (txq=<optimized out>, dev=<optimized out>, q=<optimized out>, skb=<optimized out>) at net/core/dev.c:3497 #7 __dev_queue_xmit (skb=0xffff88826911fc00, sb_dev=<optimized out>) at net/core/dev.c:3824 #8 0xffffffff816d7b1c in dev_queue_xmit (skb=<optimized out>) at net/core/dev.c:3889 #9 0xffffffff81748690 in neigh_hh_output (skb=<optimized out>, hh=<optimized out>) at ./include/net/neighbour.h:496 #10 neigh_output (skb=<optimized out>, n=<optimized out>) at ./include/net/neighbour.h:504 #11 ip_finish_output2 (net=<optimized out>, sk=<optimized out>, skb=0xffff88826911fc00) at net/ipv4/ip_output.c:229 #12 0xffffffff81749f9c in NF_HOOK_COND (pf=<optimized out>, hook=<optimized out>, in=<optimized out>, okfn=<optimized out>, cond=<optimized out>, out=<optimized out>, skb=<optimized out>, sk=<optimized out>, net=<optimized out>) at ./include/linux/netfilter.h:278 #13 ip_output (net=0xffff88826911fc00, sk=0xffff88826820c000, skb=0xffff88826911fc00) at net/ipv4/ip_output.c:405 #14 0xffffffff81763d94 in __tcp_transmit_skb (sk=0xffff88826402af80, skb=0xffff88826911fc00, clone_it=<optimized out>, gfp_mask=<optimized out>, rcv_nxt=3686429075) at net/ipv4/tcp_output.c:1172 #15 0xffffffff8176630e in __tcp_send_ack (sk=<optimized out>, rcv_nxt=<optimized out>) at net/ipv4/tcp_output.c:3651 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑协议栈决定发送ack给对端↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #16 0xffffffff81760a18 in tcp_ack_snd_check (sk=<optimized out>) at net/ipv4/tcp_input.c:5235 #17 tcp_rcv_established (sk=0xffff88826402af80, skb=0xffff88826f334800) at net/ipv4/tcp_input.c:5651 #18 0xffffffff8176c37a in tcp_v4_do_rcv (sk=0xffff88826402af80, skb=0xffff88826f334800) at net/ipv4/tcp_ipv4.c:1535 #19 0xffffffff8176ddc5 in tcp_v4_rcv (skb=0xffff88826f334800) at net/ipv4/tcp_ipv4.c:1820 #20 0xffffffff817445b9 in ip_local_deliver_finish (net=0xffffffff82393580 <init_net>, sk=<optimized out>, skb=0xffff88826f334800) at net/ipv4/ip_input.c:218 #21 0xffffffff817448db in NF_HOOK (sk=<optimized out>, pf=<optimized out>, hook=<optimized out>, in=<optimized out>, out=<optimized out>, okfn=<optimized out>, skb=<optimized out>, net=<optimized out>) at ./include/linux/netfilter.h:289 #22 NF_HOOK (pf=<optimized out>, sk=<optimized out>, out=<optimized out>, okfn=<optimized out>, in=<optimized out>, skb=<optimized out>, net=<optimized out>, hook=<optimized out>) at ./include/linux/netfilter.h:283 #23 ip_local_deliver (skb=0xffff88826f334800) at net/ipv4/ip_input.c:260 #24 0xffffffff81744bc3 in NF_HOOK (sk=<optimized out>, pf=<optimized out>, hook=<optimized out>, in=<optimized out>, out=<optimized out>, okfn=<optimized out>, +skb=<optimized out>, net=<optimized out>) at ./include/linux/netfilter.h:289 #25 NF_HOOK (pf=<optimized out>, sk=<optimized out>, out=<optimized out>, okfn=<optimized out>, in=<optimized out>, skb=<optimized out>, net=<optimized out>, hook=<optimized out>) at ./include/linux/netfilter.h:283 #26 ip_rcv (skb=0xffff88826f334800, dev=0xffff88826820c000, pt=<optimized out>, orig_dev=<optimized out>) at net/ipv4/ip_input.c:500 #27 0xffffffff816d57af in deliver_skb (orig_dev=<optimized out>, pt_prev=<optimized out>, skb=<optimized out>) at net/core/dev.c:1963 #28 deliver_ptype_list_skb (ptype_list=<optimized out>, type=<optimized out>, orig_dev=<optimized out>, pt=<optimized out>, skb=<optimized out>) at net/core/dev.c:1978 #29 __netif_receive_skb_core (skb=0xffff88826f334400, pfmemalloc=<optimized out>) at net/core/dev.c:4919 #30 0xffffffff816d85c2 in netif_receive_skb_internal (skb=<optimized out>) at net/core/dev.c:5071 #31 netif_receive_skb_internal (skb=0xffff88826911fc00) at net/core/dev.c:5036 #32 0xffffffff816d931a in napi_skb_finish (skb=<optimized out>, ret=GRO_NORMAL) at net/core/dev.c:5445 #33 napi_gro_receive (napi=0xffff88826820ce90, skb=0xffff88826f334400) at net/core/dev.c:5476 #34 0xffffffffa04a41a7 in e1000_receive_skb (adapter=<optimized out>, netdev=<optimized out>, skb=<optimized out>, staterr=<optimized out>, vlan=<optimized out>) at drivers/net/ethernet/intel/e1000e/netdev.c:564 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑将接收到的skb(报文的载体)上送协议栈↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #35 0xffffffffa04a5849 in e1000_clean_rx_irq (rx_ring=0xffff88826f81e100, work_done=<optimized out>, work_to_do=<optimized out>) at drivers/net/ethernet/intel/e1000e/netdev.c:1025 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑调用e1000e预设的接收回调↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #36 0xffffffffa04acc29 in e1000e_poll (napi=0xffff88826820ce90, budget=64) at drivers/net/ethernet/intel/e1000e/netdev.c:2670 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑驱动的poll被唤醒↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #37 0xffffffff816d8a29 in napi_poll (repoll=<optimized out>, n=<optimized out>) at net/core/dev.c:6094 #38 net_rx_action (h=<optimized out>) at net/core/dev.c:6160 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑调用napi设备通用回调↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #39 0xffffffff81c000e3 in __do_softirq () at kernel/softirq.c:292 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑软中断启动↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #40 0xffffffff810ad8b0 in invoke_softirq () at kernel/softirq.c:373 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑硬件中断进行简单的记录,调用软中断做后续处理↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #41 irq_exit () at kernel/softirq.c:413 #42 0xffffffff81a01e65 in exiting_irq () at ./arch/x86/include/asm/apic.h:536 #43 do_IRQ (regs=0xffffc90000ccfe08) at arch/x86/kernel/irq.c:258 #44 0xffffffff81a009cf in common_interrupt () at arch/x86/entry/entry_64.S:588 -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑硬件中断处理流程↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑- #45 0xffffc90000ccfe08 in ?? () #46 0x0000000000000000 in ?? () -↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑网卡硬件触发中断↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-↑-
|