libos-nuse / net-next-nuse

Network Stack in Userspace
Other
289 stars 67 forks source link

Problem with using NUSE with netmap #43

Closed slfmessi closed 9 years ago

slfmessi commented 9 years ago

Hi, I am doing something with LibOS. And I am facing some problems which is I can't use it successfully with netmap. When I want to test NUSE, I always meet a core dump after it shows the vif log just like this

create vif eth0
  address = 192.168.108.136
  netmask = 255.255.255.0
  macaddr = 00:0c:29:70:93:12
  type    = 1
Segmentation fault (core dumped)

My test conf as this

interface eth0
    address 192.168.108.136
    netmask 255.255.255.0
    macaddr 00:0c:29:70:93:12
#   if macaddr is not specified, random mac addr is used.
    viftype NETMAP

route
    network 192.168.108.0
    netmask 255.255.255.0
    gateway 192.168.108.2

While, I have already loaded the module netmap.ko and its driver e1000.ko

sunlifei@sunlifei-VPC:~/Documents/net-next-nuse/arch/lib/tools$ lsmod | grep netmap
netmap                114576  1 e1000

I'm confused what was wrong with my environment. Should it be something about the kenel version where I use

sunlifei@sunlifei-VPC:~/Documents/net-next-nuse/arch/lib/tools$ uname -a
Linux sunlifei-VPC 3.13.0-45-generic #1 SMP Mon Apr 27 22:00:27 CST 2015 x86_64 x86_64 x86_64 GNU/Linux

,would this matter?

thehajime commented 9 years ago

could you please provide a stack trace by gdb with your dumped core?

% gdb -c core (your application binary) (gdb) bt

should give a stack trace.

slfmessi commented 9 years ago

@thehajime Well, I have done something like that. The application I use to test is

ping
, with the command

sudo NUSECONF=nuse.conf ./nuse ping <my gateway>

The problem is that I can't see the function in stack trace , like that

sunlifei@sunlifei-VPC:~/Documents/net-next-nuse/arch/lib/tools$ sudo gdb -c core.74460 ping 192.168.108.133
Excess command line arguments ignored. (192.168.108.133)
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ping...(no debugging symbols found)...done.
warning: core file may not match specified executable file.
[New LWP 74460]
[New LWP 74463]
[New LWP 74464]
[New LWP 74461]
[New LWP 74462]
[New LWP 74465]
[New LWP 74466]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `ping 192.168.108.133'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f5763c88bee in nuse_vif_create (type=NUSE_VIF_NETMAP, 
    ifname=0x13708a0 "eth0") at nuse-vif.c:69
69      return impl->create(ifname);
(gdb) bt
#0  0x00007f5763c88bee in nuse_vif_create (type=NUSE_VIF_NETMAP, 
    ifname=0x13708a0 "eth0") at nuse-vif.c:69
#1  0x00007f5763c8e35a in nuse_netdev_create (vifcf=0x13708a0) at nuse.c:367
#2  0x00007f5763c8eb6a in nuse_init () at nuse.c:524
#3  0x00007f57646f513a in call_init (l=, argc=argc@entry=2, 
    argv=argv@entry=0x7fffb61640d8, env=env@entry=0x7fffb61640f0)
    at dl-init.c:78
#4  0x00007f57646f5223 in call_init (env=, 
    argv=, argc=, l=)
    at dl-init.c:36
#5  _dl_init (main_map=0x7f57649091c8, argc=2, argv=0x7fffb61640d8, 
    env=0x7fffb61640f0) at dl-init.c:126
#6  0x00007f57646e630a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#7  0x0000000000000002 in ?? ()
#8  0x00007fffb61657e6 in ?? ()
#9  0x00007fffb61657eb in ?? ()
#10 0x0000000000000000 in ?? ()
(gdb) 
thehajime commented 9 years ago

This issue was moved to libos-nuse/linux-libos-tools#15

thehajime commented 9 years ago

Since the issue is not related to LibOS itself, but NUSE which is in libos-nuse/linux-libos-tools, I moved this issue to the project.