On 3/8/15, 5:11 PM, "Wiles, Keith" <keith.wiles at intel.com> wrote:
>Hi Shankari, > >Please show the command lines you are using for the two applications. Sorry, you did show the command lines. > > > >On 3/8/15, 11:10 AM, "Shankari Vaidyalingam" <shankari.v2k6 at gmail.com> >wrote: > >>Hi, >> >>I'm trying to send packets from pktgen to exception path sample >>application. >>My configuration is like this: >> >>|------Terminal 1------- -------Terminal >>2------------ >>| | | >> | >>| Pktgen |------> NIC port 0 --|--->tap0 --> Appln >>--->tap1| >>| | >>|---------------------------------| >>|----------------------- >>Tried the following but getting an error with memory fault: >> >> >>Pktgen: Started this first >>Exception path sample application: When I started this I got the error: >>Please let me know how to resolve this error: >> >>>>>>>>>> >> >>sudo ./build/exceptiopath -c 0x03 -n 2 -- -p 0x01 -i 2 -o 1 >>[sudo] password for controller: >>EAL: Detected lcore 0 as core 0 on socket 0 >>EAL: Detected lcore 1 as core 1 on socket 0 >>EAL: Support maximum 64 logical core(s) by configuration. >>EAL: Detected 2 lcore(s) >>EAL: No free hugepages reported in hugepages-2048kB >>PANIC in rte_eal_init(): >>Cannot get hugepage information >>6: [./build/exception_path() [0x418cc5]] >>5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) >>[0x7fda2c77976d]] >>4: [./build/exception_path(main+0x39) [0x4183e9]] >>3: [./build/exception_path(rte_eal_init+0x10ac) [0x45f8ac]] >>2: [./build/exception_path(__rte_panic+0xc1) [0x41824a]] >>1: [./build/exception_path(rte_dump_stack+0x23) [0x466013]] >> >>>>>>>>>> >> >>Then I tried the following steps >> >>(2) Started the sample path application first >>Pktgen next I got the below error: >> >> Pktgen created by: Keith Wiles -- >>> Powered by Intel? DPDK <<< >>----------------------- >>EAL: Detected lcore 0 as core 0 on socket 0 >>EAL: Detected lcore 1 as core 1 on socket 0 >>EAL: Support maximum 64 logical core(s) by configuration. >>EAL: Detected 2 lcore(s) >>EAL: No free hugepages reported in hugepages-2048kB >>PANIC in rte_eal_init(): >>Cannot get hugepage information >>6: [./app/build/pktgen() [0x422ba5]] >>5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) >>[0x7fb46e0b476d]] >>4: [./app/build/pktgen(main+0x116) [0x422286]] >>3: [./app/build/pktgen(rte_eal_init+0x10ac) [0x4ac4dc]] >>2: [./app/build/pktgen(__rte_panic+0xc1) [0x422007]] >>1: [./app/build/pktgen(rte_dump_stack+0x23) [0x4b2c43]] >> >>(3) I tried specifying no of pages that both the pktgen and sample >>application needs to take by specifying it in commandline in the EAL >>options: >>But that also didnt work: >> >>EAL: Virtual area found at 0x7fcff6200000 (size = 0x200000) >>EAL: Not enough memory available on socket 1! Requested: 128MB, >>available: >>0MB >>PANIC in rte_eal_init(): >>Cannot init memory >>6: [./build/exception_path() [0x418cc5]] >>5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) >>[0x7fd0790f876d]] >>4: [./build/exception_path(main+0x39) [0x4183e9]] >>3: [./build/exception_path(rte_eal_init+0x1808) [0x460008]] >>2: [./build/exception_path(__rte_panic+0xc1) [0x41824a]] >>1: [./build/exception_path(rte_dump_stack+0x23) [0x466013]] >> >>(4) Then I went forward to edit the no of hugepages allocated in the >>script >>/etc/sysctl.conf and then >>ran the setup.sh script under the tools dir to allocate hugepages for >>each >>separate application >> >>This time also I faced issues related to memory running out: >> >>HugePages: 0 kB >>HugePages_Total: 256 >>HugePages_Free: 256 >>HugePages_Rsvd: 0 >>HugePages_Surp: 0 >>Hugepagesize: 2048 kB >> >>EAL: Requesting 256 pages of size 2MB from socket 0 >>EAL: TSC frequency is ~2689707 KHz >>EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using >>unreliable >>clock cycles ! >>EAL: Master core 0 is ready (tid=4fd54800) >>EAL: Core 1 is ready (tid=2c7fe700) >>EAL: PCI device 0000:00:08.0 on NUMA socket -1 >>EAL: probe driver: 8086:100f rte_em_pmd >>EAL: PCI memory mapped at 0x7f894fcfe000 >>EAL: PCI device 0000:00:09.0 on NUMA socket -1 >>EAL: probe driver: 8086:100f rte_em_pmd >>EAL: PCI memory mapped at 0x7f894fcde000 >>EAL: PCI device 0000:00:0a.0 on NUMA socket -1 >>EAL: probe driver: 8086:100f rte_em_pmd >>EAL: 0000:00:0a.0 not managed by UIO driver, skipping >>EAL: PCI device 0000:00:11.0 on NUMA socket -1 >>EAL: probe driver: 8086:100f rte_em_pmd >>EAL: 0000:00:11.0 not managed by UIO driver, skipping >>EAL: PCI device 0000:00:0a.0 on NUMA socket -1 >>EAL: probe driver: 8086:100f rte_em_pmd >>EAL: 0000:00:0a.0 not managed by UIO driver, skipping >>EAL: PCI device 0000:00:11.0 on NUMA socket -1 >>EAL: probe driver: 8086:100f rte_em_pmd >>EAL: 0000:00:11.0 not managed by UIO driver, skipping >>APP: Initialising port 0 ... >> >>Checking link statusdone >>Port 0 Link Up - speed 1000 Mbps - full-duplex >>APP: Lcore 1 is reading from port 0 and writing to tap_dpdk_01 >>APP: Lcore 0 is reading from tap_dpdk_00 and writing to port 0 >> >>Setting huge pages through execution of setup.sh: >> >>HugePages: 0 kB >>HugePages_Total: 512 >>HugePages_Free: 256 >>HugePages_Rsvd: 0 >>HugePages_Surp: 0 >>Hugepagesize: 2048 kB >> >>Press enter to continue ... >> >>when pktgen is executed the output was: >> >> Pktgen created by: Keith Wiles -- >>> Powered by Intel? DPDK <<< >>----------------------- >>EAL: Detected lcore 0 as core 0 on socket 0 >>EAL: Detected lcore 1 as core 1 on socket 0 >>EAL: Support maximum 64 logical core(s) by configuration. >>EAL: Detected 2 lcore(s) >>EAL: Error - exiting with code: 1 >> Cause: Cannot create lock on '/var/run/.rte_config'. Is another primary >>process running? >> >>(5) >>>>>> Then I tried with the proc-type=auto to start the app as >>secondary process and pktgen as primary process but it gave me the error: >> >> >>>>>>>>>Pktgen was executing successfully >> >>Then I executed setup.sh to set the no of hugepages for pktgen >> >>HugePages: 0 kB >>HugePages_Total: 1024 >>HugePages_Free: 512 >>HugePages_Rsvd: 0 >>HugePages_Surp: 0 >>Hugepagesize: 2048 kB >> >>Network devices using DPDK-compatible driver >>============================================ >>0000:00:08.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio >>unused=e1000 >>0000:00:09.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio >>unused=e1000 >> >>Network devices using kernel driver >>=================================== >>0000:00:0a.0 '82545EM Gigabit Ethernet Controller (Copper)' if=eth4 >>drv=e1000 unused=igb_uio >>0000:00:11.0 '82545EM Gigabit Ethernet Controller (Copper)' if=eth2 >>drv=e1000 unused=igb_uio *Active* >> >>Other network devices >>===================== >><none> >>controller at controller-VirtualBox:~/dpdk-1.7.1/examples/exception_path$ >>sudo >>./build/exception_path -c 0x03 -n 2 --proc-type=auto -- -p 0x01 -i 2 -o 1 > >These are just examples and may not run as expected: >./build/exception_path -c 0x03 -n 2 --proc-type auto --socket-mem 256,256 >--file-prefix ex -- -p 0x01 -i 2 -o 1 >./build/pktgen -c 0x1f0 -n 3 --proc-type auto --socket-mem 256,256 >--file-prefix pg -- -p 0x00c -P -m "[1:3].0, [2:4].1? > >You need to make sure you use > . different cores for each application. > . --proc-type auto on both, start one of the applications first to > define >it as the master. > . --file-prefix XXX to force DPDK to use different files in the > /mnt/huge >directories. The XXX is the file prefix say ?pg? for Pktgen and you could >leave the option off the other other application, but I would add one like >?file-prefix ex > . --socket-mem X,Y to split up the memory for each application. If you >have two sockets and 1024 huge pages allocated in the system then use >--socket-mem 512,512 for each application. You can have one application >with more or less then the other application. If you have one socket then >--socket-mem X on one then --socket-mem Y on the other. > . split up the ports between the applications as well, it is not easy to >share a port unless you want to design the applications as a true >master/secondary processes. > >>EAL: Detected lcore 0 as core 0 on socket 0 >>EAL: Detected lcore 1 as core 1 on socket 0 >>EAL: Support maximum 64 logical core(s) by configuration. >>EAL: Detected 2 lcore(s) >>EAL: Auto-detected process type: SECONDARY >>EAL: Setting up memory... >>EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the >>kernel. >>EAL: This may cause issues with mapping memory into secondary >>processes >>EAL: Analysing 512 files >>EAL: Could not open /mnt/huge/rtemap_256 >>PANIC in rte_eal_init(): >>Cannot init memory >>6: [./build/exception_path() [0x418cc5]] >>5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) >>[0x7fa570d0a76d]] >>4: [./build/exception_path(main+0x39) [0x4183e9]] >>3: [./build/exception_path(rte_eal_init+0x1808) [0x460008]] >>2: [./build/exception_path(__rte_panic+0xc1) [0x41824a]] >>1: [./build/exception_path(rte_dump_stack+0x23) [0x466013]] >> >>(7) Changed the code to have separate execution paths for primary and >>secondary processes as per the multi >>process application and then executed the code. >>I also disabled ASLR temporarily to allow memory allocation for the >>secondary process but still I face the below issue: >> >>controller at controller-VirtualBox:~/dpdk-1.7.1/examples/exception_path$ >>sudo >>./build/exception_path -c 0x03 -n 2 --proc-type=auto -- -p 0x01 -i 2 -o 1 >>EAL: Detected lcore 0 as core 0 on socket 0 >>EAL: Detected lcore 1 as core 1 on socket 0 >>EAL: Support maximum 64 logical core(s) by configuration. >>EAL: Detected 2 lcore(s) >>EAL: Auto-detected process type: SECONDARY >>EAL: Setting up memory... >>EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the >>kernel. >>EAL: This may cause issues with mapping memory into secondary >>processes >>EAL: Analysing 512 files >>EAL: Could not open /mnt/huge/rtemap_256 >>PANIC in rte_eal_init(): >>Cannot init memory >>6: [./build/exception_path() [0x418cc5]] >>5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) >>[0x7fa570d0a76d]] >>4: [./build/exception_path(main+0x39) [0x4183e9]] >>3: [./build/exception_path(rte_eal_init+0x1808) [0x460008]] >>2: [./build/exception_path(__rte_panic+0xc1) [0x41824a]] >>1: [./build/exception_path(rte_dump_stack+0x23) [0x466013]] >> >>============================================================= >> >>Contents of /etc/sysctl.conf in both the cases: >> >># Accept ICMP redirects only for gateways listed in our default >># gateway list (enabled by default) >># net.ipv4.conf.all.secure_redirects = 1 >># >># Do not send ICMP redirects (we are not a router) >>#net.ipv4.conf.all.send_redirects = 0 >># >># Do not accept IP source route packets (we are not a router) >>#net.ipv4.conf.all.accept_source_route = 0 >>#net.ipv6.conf.all.accept_source_route = 0 >># >># Log Martian Packets >>#net.ipv4.conf.all.log_martians = 1 >># >> >>vm.nr_hugepages=1024 >> >>=================================================== >> >> >>Regards >>Shankari.V >