[dpdk-dev] MENNIC1.2 host-sim crashed for me

Srinivas Reddi srinivas.reddi at aricent.com
Tue Jul 15 16:40:55 CEST 2014


Hi Hiroshi ,

Thanks for your comments ...
I found dpdk1.6  doesn't work for MEMNIC.1.2 ..
I tried with dpdk-1.7 .. It worked for me ..


1. host_sim app in host
[root at localhost host-sim]# ./memnic-host-sim /dev/shm/ivshm
reset
reset
reset


2. test pmd app in guest ..

[root at localhost test-pmd]# ./testpmd -c3 -n2 -d /usr/local/lib/librte_pmd_memnic_copy.so -- -i --nb-cores=1 --nb-ports=1 --port-topology=chained
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 0 on socket 0
EAL: Detected lcore 2 as core 0 on socket 0
EAL: Support maximum 64 logical core(s) by configuration.
EAL: Detected 3 lcore(s)
EAL:   cannot open VFIO container, error 2 (No such file or directory)
EAL: VFIO support could not be initialized
EAL: Setting up memory...
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4ccca00000 (size = 0x200000)
EAL: Ask a virtual area of 0x3fc00000 bytes
EAL: Virtual area found at 0x7f4c8cc00000 (size = 0x3fc00000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f4c8c800000 (size = 0x200000)
EAL: Requesting 512 pages of size 2MB from socket 0
EAL: TSC frequency is ~3092832 KHz
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !
EAL: open shared lib /usr/local/lib/librte_pmd_memnic_copy.so
EAL: Master core 0 is ready (tid=cd01f880)
EAL: Core 1 is ready (tid=8bdf8700)
EAL: PCI device 0000:00:03.0 on NUMA socket -1
EAL:   probe driver: 8086:100e rte_em_pmd
EAL:   0000:00:03.0 not managed by UIO driver, skipping
EAL: PCI device 0000:00:04.0 on NUMA socket -1
EAL:   probe driver: 1af4:1110 rte_pmd_memnic_copy
PMD: PORT MAC: 00:09:C0:00:13:37
Interactive-mode selected
Configuring Port 0 (socket 0)
PMD: memnic: configure OK
PMD: txq: 0x7f4c8d6f2980
PMD: rxq: 0x7f4c8d6f2900
Port 0: 00:09:C0:00:13:37
Checking link statuses...
Port 0 Link Up - speed 10000 Mbps - full-duplex
Done
testpmd> port reset 0
Bad arguments
testpmd> port stop 0
Stopping ports...
Checking link statuses...
Port 0 Link Up - speed 10000 Mbps - full-duplex
Done
testpmd> port start 0
Port 0: 00:09:C0:00:13:37
Checking link statuses...
Port 0 Link Up - speed 10000 Mbps - full-duplex
Done
testpmd> port stop 0
Stopping ports...
Checking link statuses...
Port 0 Link Up - speed 10000 Mbps - full-duplex
Done
testpmd> port start 0
Port 0: 00:09:C0:00:13:37
Checking link statuses...
Port 0 Link Up - speed 10000 Mbps - full-duplex
Done
testpmd>


Thanks & Regards,
Srinivas.


-----Original Message-----
From: Hiroshi Shimamoto [mailto:h-shimamoto at ct.jp.nec.com]
Sent: Tuesday, July 15, 2014 6:23 PM
To: Srinivas Reddi; dev at dpdk.org
Subject: RE: MENNIC1.2 host-sim crashed for me

Hi Srinivas,

> Subject: FW: MENNIC1.2 host-sim crashed for me
>
>
> Hi Hiroshi,
> Thanks for ur reply .. I have moved forward little bit.
>
> MEMNIC-1.2
>
> 1. I started qemu and then started host-sim application
>
> Qemu command :
> qemu-system-x86_64 -enable-kvm -cpu host   -boot c -hda /home/vm-images/vm1-clone.img -m 8192M -smp 3 --enable-kvm -name
> vm1 -vnc :1 -pidfile /tmp/vm1.pid -drive file=fat:rw:/tmp/share
> -device ivshmem,size=16,shm=ivshm vvfat fat:rw:/tmp/share chs
> 1024,16,63
>
> 2.Host-sim app command :
> 3.[root at localhost host-sim]# ./memnic-host-sim   /dev/shm/ivshm
> 4.On the guest compiled  memnic-1.2 .
> 5.Inserted memnic.ko
> 6.Found and interface ens4  after insmod memnic.ko
>
> [root at localhost memnic-1.2]# ifconfig -a
> ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
>         inet6 fe80::5054:ff:fe12:3456  prefixlen 64  scopeid 0x20<link>
>         ether 52:54:00:12:34:56  txqueuelen 1000  (Ethernet)
>         RX packets 0  bytes 0 (0.0 B)
>         RX errors 0  dropped 0  overruns 0  frame 0
>         TX packets 8  bytes 648 (648.0 B)
>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>
> ens4: flags=4098<BROADCAST,MULTICAST>  mtu 1500
>         ether 00:09:c0:00:13:37  txqueuelen 1000  (Ethernet)
>         RX packets 0  bytes 0 (0.0 B)
>         RX errors 0  dropped 0  overruns 0  frame 0
>         TX packets 0  bytes 0 (0.0 B)
>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>
> lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
>         inet 127.0.0.1  netmask 255.0.0.0
>         inet6 ::1  prefixlen 128  scopeid 0x10<host>
>         loop  txqueuelen 0  (Local Loopback)
>         RX packets 386  bytes 33548 (32.7 KiB)
>         RX errors 0  dropped 0  overruns 0  frame 0
>         TX packets 386  bytes 33548 (32.7 KiB)
>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>
> 7.lspci on the guest
>
> [root at localhost memnic-1.2]# lspci
> 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]
> (rev 02)
> 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton
> II]
> 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE
> [Natoma/Triton II]
> 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
> 00:02.0 VGA compatible controller: Cirrus Logic GD 5446
> 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit
> Ethernet Controller (rev 03)
> 00:04.0 RAM memory: Red Hat, Inc Device 1110 [root at localhost
> memnic-1.2]#
>
> 8.on the Guest  ran test pmd application

you cannot use both kernel driver and PMD concurrently.
Before run testpmd, you should unload memnic.ko by rmmod command.

>
> [root at localhost test-pmd]# ./testpmd -c7 -n3  -- --d
> /usr/local/lib/librte_pmd_memnic_copy.so  -i --nb-cores=1
> --nb-ports=1 --port-topology=chained

I don't know about testpmd so much, but I guess the correct EAL parameters are like this.

# ./testpmd -c 0x7 -n 3 -d /usr/local/lib/librte_pmd_memnic_copy.so -- ...

Please pass extra library in EAL parameter.

> EAL: Detected lcore 0 as core 0 on socket 0
> EAL: Detected lcore 1 as core 0 on socket 0
> EAL: Detected lcore 2 as core 0 on socket 0
> EAL: Setting up memory...
> EAL: Ask a virtual area of 0x40000000 bytes
> EAL: Virtual area found at 0x7f5514000000 (size = 0x40000000)
> EAL: Requesting 512 pages of size 2MB from socket 0
> EAL: TSC frequency is ~3092833 KHz
> EAL: Master core 0 is ready (tid=54398880)
> EAL: Core 1 is ready (tid=135f8700)
> EAL: Core 2 is ready (tid=12df7700)
> EAL: PCI device 0000:00:03.0 on NUMA socket -1
> EAL:   probe driver: 8086:100e rte_em_pmd
> EAL:   0000:00:03.0 not managed by UIO driver, skipping
> EAL: Error - exiting with code: 1
>   Cause: No probed ethernet devices - check that
> CONFIG_RTE_LIBRTE_IGB_PMD=y and that CONFIG_RTE_LIBRTE_EM_PMD=y and
> that CONFIG_RTE_LIBRTE_IXGBE_PMD=y in your configuration file
> [root at localhost test-pmd]#
>
> How can I bind 00:04.0 Ram controller to dpdk application (test-pmd ) .
> How DPDK test-pmd application finds the memnic device.
>
> 9.Am I missing any steps in the guest configurations or host configuration .
> 10.Is there any better manual for testing MEMNIC-1.2 or better understanding .
> 11.Is there any better application  to test MEMNIC   for VM-VM  or VM to host data transfer .

I think the current host-sim doesn't have any packet switching capability, we need to implement such a functionality to test MEMNIC.

Actually, I started MEMNIC develop in DPDK vSwitch project.
You can see that in https://github.com/01org/dpdk-ovs/tree/development

thanks,
Hiroshi

>
> Thanks &  regards,
> Srinivas.
>
>
>
> -----Original Message-----
> From: Hiroshi Shimamoto [mailto:h-shimamoto at ct.jp.nec.com]
> Sent: Tuesday, July 15, 2014 5:31 AM
> To: Srinivas Reddi; dev at dpdk.org
> Subject: RE: MENNIC1.2 host-sim crashed for me
>
> Hi,
>
> > Subject: [dpdk-dev] MENNIC1.2 host-sim crashed for me
> >
> > Hi,
> > I want to run MEMNIC 1.2 application .
> >
> > 1.       I compiled DPDK1.6
> >
> > 2.       I compiled memnic.12
> >
> > 3.       And while running memnic-hostsim app    got strucked
> >
> > 4.
> >
> > 5.       [root at localhost host-sim]# ./memnic-host-sim /dev/shm/ivshm
> >
> > Bus error (core dumped)
> >
> >
> >
> > Core was generated by `./memnic-host-sim  /dev/shm/ivshm'.
> >
> > Program terminated with signal SIGBUS, Bus error.
> >
> > #0  0x0000003a82e894e4 in memset () from /lib64/libc.so.6
> >
> > Missing separate debuginfos, use: debuginfo-install
> > glibc-2.18-11.fc20.x86_64
> >
> > (gdb) bt
> >
> > #0  0x0000003a82e894e4 in memset () from /lib64/libc.so.6
> >
> > #1  0x00000000004008a3 in init_memnic (nic=0x7ffff6fe2000) at
> > host-sim.c:55
> >
> > #2  0x0000000000400a8a in main (argc=2, argv=0x7fffffffe4a8) at
> > host-sim.c:106
> >
> > (gdb)
> >
> >
> >
> >
> >
> > Got error at line 55 .. saying nic is read only..
>
>
> I have never tried host-sim yet though.
> I guess it's the cause that host-sim doesn't increase the shared memory size.
> Could you try booting qemu first with -device ivshmem,size=16,shm=/ivshm then run host-sim?
>
> thanks,
> Hiroshi
>
> >
> >
> >
> > 53 static void init_memnic(struct memnic_area *nic)
> >
> > 54 {
> >
> > 55     memset(nic, 0, sizeof(*nic));
> >
> > 56     nic->hdr.magic = MEMNIC_MAGIC;
> >
> > 57     nic->hdr.version = MEMNIC_VERSION;
> >
> > 58     /* 00:09:c0:00:13:37 */
> >
> > 59     nic->hdr.mac_addr[0] = 0x00;
> >
> > 60     nic->hdr.mac_addr[1] = 0x09;
> >
> > 61     nic->hdr.mac_addr[2] = 0xc0;
> >
> > 62     nic->hdr.mac_addr[3] = 0x00;
> >
> > 63     nic->hdr.mac_addr[4] = 0x13;
> >
> > 64     nic->hdr.mac_addr[5] = 0x37;
> >
> > 65 }
> >
> >
> >
> > Thanks,
> >
> > Srinivas.
> >
> > "DISCLAIMER: This message is proprietary to Aricent and is intended
> > solely for the use of the individual to whom it is addressed. It may
> > contain privileged or confidential information and should not be
> > circulated or used for any purpose other than for what
> it is intended. If you have received this message in error, please notify the originator immediately.
> > If you are not the intended recipient, you are notified that you are
> > strictly prohibited from using, copying, altering, or disclosing the
> > contents of this message. Aricent accepts no responsibility for loss
> > or damage arising from the use of the information
> transmitted by this email including damage from virus."
> "DISCLAIMER: This message is proprietary to Aricent and is intended
> solely for the use of the individual to whom it is addressed. It may
> contain privileged or confidential information and should not be circulated or used for any purpose other than for what it is intended. If you have received this message in error, please notify the originator immediately.
> If you are not the intended recipient, you are notified that you are
> strictly prohibited from using, copying, altering, or disclosing the
> contents of this message. Aricent accepts no responsibility for loss or damage arising from the use of the information transmitted by this email including damage from virus."
"DISCLAIMER: This message is proprietary to Aricent and is intended solely for the use of the individual to whom it is addressed. It may contain privileged or confidential information and should not be circulated or used for any purpose other than for what it is intended. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from using, copying, altering, or disclosing the contents of this message. Aricent accepts no responsibility for loss or damage arising from the use of the information transmitted by this email including damage from virus."


More information about the dev mailing list