Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iperf coredump #21

Open
vincentmli opened this issue Jul 1, 2015 · 1 comment
Open

iperf coredump #21

vincentmli opened this issue Jul 1, 2015 · 1 comment

Comments

@vincentmli
Copy link

I am running libos-nuse on bare metal with dpdk 1.7.1, ping works fine, but running iperf I got coredump as below, it looks rte_pktmbuf_alloc fail to allocate rte_pktmbuf, I don't know why it fail

(gdb) bt
#0  0x00007f3bead63b66 in rte_pktmbuf_lastseg (m=0x0) at /home/vincent/net-next-nuse/arch/lib/tools/dpdk/build/include/rte_mbuf.h:884
#1  0x00007f3bead63b93 in rte_pktmbuf_append (m=0x0, len=1514) at /home/vincent/net-next-nuse/arch/lib/tools/dpdk/build/include/rte_mbuf.h:975
#2  0x00007f3bead63e95 in nuse_vif_dpdk_write (vif=0x8192f0, dev=0x8ada60, data=0x7f3bc413e376 "", len=1514) at nuse-vif-dpdk.c:164
#3  0x00007f3beadd2af3 in nuse_vif_write (vif=0x8192f0, dev=0x8ada60, data=0x7f3bc413e376 "", len=1514) at nuse-vif.c:32
#4  0x00007f3beadd7cec in nuse_dev_xmit (kernel=0x0, dev=0x8ada60, data=0x7f3bc413e376 "", len=1514) at nuse.c:298
#5  0x00007f3beb0f0617 in kernel_dev_xmit (skb=0x7f3bc413e1e8, dev=0x8ada60) at arch/lib/lib-device.c:38
#6  0x00007f3beb14c258 in __netdev_start_xmit (ops=<optimized out>, more=false, dev=0x8ada60, skb=0x7f3bc413e1e8) at ./include/linux/netdevice.h:3609
#7  netdev_start_xmit (more=false, txq=0x8aaf38, dev=0x8ada60, skb=0x7f3bc413e1e8) at ./include/linux/netdevice.h:3618
#8  xmit_one (skb=skb@entry=0x7f3bc413e1e8, dev=dev@entry=0x8ada60, txq=txq@entry=0x8aaf38, more=more@entry=false) at net/core/dev.c:2687
#9  0x00007f3beb14d065 in dev_hard_start_xmit (first=first@entry=0x7f3bc413e1e8, dev=dev@entry=0x8ada60, txq=txq@entry=0x8aaf38, ret=ret@entry=0x7f3be991a730) at net/core/dev.c:2703
#10 0x00007f3beb16709e in sch_direct_xmit (skb=skb@entry=0x7f3bc413e1e8, q=q@entry=0x8b6340, dev=dev@entry=0x8ada60, txq=txq@entry=0x8aaf38, root_lock=root_lock@entry=0x8b63ec,
    validate=validate@entry=true) at net/sched/sch_generic.c:165
#11 0x00007f3beb14d335 in __dev_xmit_skb (txq=0x8aaf38, dev=0x8ada60, q=0x8b6340, skb=0x7f3bc413e1e8) at net/core/dev.c:2873
#12 __dev_queue_xmit (skb=skb@entry=0x7f3bc413e1e8, accel_priv=accel_priv@entry=0x0) at net/core/dev.c:3076
#13 0x00007f3beb14d5aa in dev_queue_xmit_sk (sk=<optimized out>, skb=skb@entry=0x7f3bc413e1e8) at net/core/dev.c:3142
#14 0x00007f3beb1a0ed9 in dev_queue_xmit (skb=0x7f3bc413e1e8) at ./include/linux/netdevice.h:2186
#15 neigh_hh_output (skb=<optimized out>, hh=<optimized out>) at ./include/net/neighbour.h:467
#16 dst_neigh_output (dst=<optimized out>, skb=0x7f3bc413e1e8, n=0x7f3bc40219d8) at ./include/net/dst.h:401
#17 ip_finish_output2 (skb=<optimized out>, sk=0x0) at net/ipv4/ip_output.c:210
#18 ip_finish_output (sk=sk@entry=0x7f3bc4020d28, skb=skb@entry=0x7f3bc413e1e8) at net/ipv4/ip_output.c:284
#19 0x00007f3beb1a1efb in NF_HOOK_COND (cond=<optimized out>, okfn=0x7f3beb1a0cb0 <ip_finish_output>, out=0x8ada60, in=0x0, skb=0x7f3bc413e1e8, sk=0x7f3bc4020d28, hook=4, pf=2 '\002')
    at ./include/linux/netfilter.h:233
#20 ip_output (sk=0x7f3bc4020d28, skb=0x7f3bc413e1e8) at net/ipv4/ip_output.c:356
#21 0x00007f3beb1a18f8 in ip_local_out (skb=0x7f3bc413e1e8) at ./include/net/ip.h:119
#22 ip_queue_xmit (sk=0x7f3bc4020d28, skb=0x7f3bc413e1e8, fl=0x7f3bc4021020) at net/ipv4/ip_output.c:454
#23 0x00007f3beb1b8f31 in tcp_transmit_skb (sk=sk@entry=0x7f3bc4020d28, skb=0x7f3bc413e1e8, skb@entry=0x7f3bc413e108, clone_it=clone_it@entry=1, gfp_mask=gfp_mask@entry=32)
    at net/ipv4/tcp_output.c:1041
#24 0x00007f3beb1b97a0 in tcp_write_xmit (sk=0x7f3bc4020d28, mss_now=1448, nonagle=0, push_one=0, gfp=32) at net/ipv4/tcp_output.c:2139
#25 0x00007f3beb1b9c79 in __tcp_push_pending_frames (sk=sk@entry=0x7f3bc4020d28, cur_mss=<optimized out>, nonagle=nonagle@entry=0) at net/ipv4/tcp_output.c:2314
#26 0x00007f3beb1b50c7 in tcp_push_pending_frames (sk=0x7f3bc4020d28) at ./include/net/tcp.h:1543
#27 tcp_data_snd_check (sk=0x7f3bc4020d28) at net/ipv4/tcp_input.c:4883
#28 tcp_rcv_established (sk=sk@entry=0x7f3bc4020d28, skb=skb@entry=0x7f3bbc0008c8, th=0x7f3bbc0009fa, len=<optimized out>) at net/ipv4/tcp_input.c:5348
#29 0x00007f3beb1bdc0c in tcp_v4_do_rcv (sk=sk@entry=0x7f3bc4020d28, skb=skb@entry=0x7f3bbc0008c8) at net/ipv4/tcp_ipv4.c:1399
#30 0x00007f3beb1c01b0 in tcp_v4_rcv (skb=0x7f3bbc0008c8) at net/ipv4/tcp_ipv4.c:1633
#31 0x00007f3beb19b992 in ip_local_deliver_finish (sk=sk@entry=0x0, skb=skb@entry=0x7f3bbc0008c8) at net/ipv4/ip_input.c:216
#32 0x00007f3beb19bfa2 in NF_HOOK_THRESH (thresh=-2147483648, okfn=0x7f3beb19b8b0 <ip_local_deliver_finish>, out=0x0, in=<optimized out>, skb=0x7f3bbc0008c8, sk=0x0, hook=1, pf=2 '\002')
    at ./include/linux/netfilter.h:220
#33 NF_HOOK (okfn=0x7f3beb19b8b0 <ip_local_deliver_finish>, out=0x0, in=<optimized out>, skb=0x7f3bbc0008c8, sk=0x0, hook=1, pf=2 '\002') at ./include/linux/netfilter.h:242
#34 ip_local_deliver (skb=0x7f3bbc0008c8) at net/ipv4/ip_input.c:256
#35 0x00007f3beb19c203 in NF_HOOK_THRESH (thresh=-2147483648, okfn=0x7f3beb19bae0 <ip_rcv_finish>, out=0x0, in=0x8ada60, skb=0x7f3bbc0008c8, sk=0x0, hook=0, pf=2 '\002')
    at ./include/linux/netfilter.h:220
#36 NF_HOOK (okfn=0x7f3beb19bae0 <ip_rcv_finish>, out=0x0, in=0x8ada60, skb=0x7f3bbc0008c8, sk=0x0, hook=0, pf=2 '\002') at ./include/linux/netfilter.h:242
#37 ip_rcv (skb=<optimized out>, dev=0x8ada60, pt=<optimized out>, orig_dev=<optimized out>) at net/ipv4/ip_input.c:455
#38 0x00007f3beb14a0d3 in __netif_receive_skb_core (skb=0x7f3bbc0008c8, pfmemalloc=<optimized out>) at net/core/dev.c:3895
#39 0x00007f3beb14a944 in process_backlog (napi=0x7f3beb658e70 <softnet_data+112>, quota=64) at net/core/dev.c:4506
#40 0x00007f3beb14a78e in napi_poll (n=0x7f3beb658e70 <softnet_data+112>, repoll=repoll@entry=0x7f3be991ace0) at net/core/dev.c:4744
#41 0x00007f3beb14aa68 in net_rx_action (h=<optimized out>) at net/core/dev.c:4809
#42 0x00007f3beb0f0ef3 in do_softirq () at arch/lib/softirq.c:69
#43 0x00007f3beb0f0f58 in softirq_task_function (context=<optimized out>) at arch/lib/softirq.c:28
#44 0x00007f3beadd788f in nuse_task_start_trampoline (context=0x814250) at nuse.c:175
#45 0x00007f3bea616182 in start_thread (arg=0x7f3be991b700) at pthread_create.c:312
---Type <return> to continue, or q <return> to quit---
#46 0x00007f3bea34347d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
@thehajime
Copy link
Member

thanks for the report.

I think at least nuse should handle rte_pktmbuf_alloc() failure by checking returned address.
for the error of mbuf alloc failure, I will investigate it (I suspect the lack of rte_pktmbuf_free may cause this issue).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants