* [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory @ 2018-03-12 10:25 RAJESH KUMAR S.R 2018-03-17 15:58 ` Rosen, Rami 0 siblings, 1 reply; 6+ messages in thread From: RAJESH KUMAR S.R @ 2018-03-12 10:25 UTC (permalink / raw) To: users Hi, I am new to dpdk. I'm trying to use dpdk-pdump tool. I'm able to capture packets on dpdk ports. But, I'm facing the following issue I'm getting a error "RING:Cannot reserve memory" while trying to restart the pdump tool or running 2 instances of pdump. I have also used the rte_eal_cleanup while exiting pdump main function. Output: * sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* [sudo] password for admin: EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1061_ce297dfe759 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Port 2 MAC: 00 00 00 01 02 03 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Port 3 MAC: 00 00 00 01 02 03 ^C Signal 2 received, preparing to exit... ##### PDUMP DEBUG STATS ##### -packets dequeued: 4 -packets transmitted to vdev: 4 -packets freed: 0 Restarting........ *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1073_cea9cc51241 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Segmentation fault *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1087_cec3ab006b1 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used RING: Cannot reserve memory EAL: Error - exiting with code: 1 Cause: File exists:create_mp_ring_vdev:634 Hugepage info: cat /proc/meminfo | grep Huge AnonHugePages: 6144 kB HugePages_Total: 300 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Can you please help me in finding the issue. Thanks, Rajesh kumar S R ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory 2018-03-12 10:25 [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory RAJESH KUMAR S.R @ 2018-03-17 15:58 ` Rosen, Rami 2018-03-18 17:52 ` RAJESH KUMAR S.R 0 siblings, 1 reply; 6+ messages in thread From: Rosen, Rami @ 2018-03-17 15:58 UTC (permalink / raw) To: RAJESH KUMAR S.R, users Hi Rajesh, Can you please provide more details: - Which DPDK version are you using? - dpdk-pdump is a secondary process and must be launched along with any primary process. Which is the primary process you are running ? is it something that you developed on your own/took something from DPDK examples (with/without extending it), etc ? Regards, Rami Rosen -----Original Message----- From: users [mailto:users-bounces@dpdk.org] On Behalf Of RAJESH KUMAR S.R Sent: Monday, March 12, 2018 12:25 To: users@dpdk.org Subject: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory Hi, I am new to dpdk. I'm trying to use dpdk-pdump tool. I'm able to capture packets on dpdk ports. But, I'm facing the following issue I'm getting a error "RING:Cannot reserve memory" while trying to restart the pdump tool or running 2 instances of pdump. I have also used the rte_eal_cleanup while exiting pdump main function. Output: * sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* [sudo] password for admin: EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1061_ce297dfe759 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Port 2 MAC: 00 00 00 01 02 03 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Port 3 MAC: 00 00 00 01 02 03 ^C Signal 2 received, preparing to exit... ##### PDUMP DEBUG STATS ##### -packets dequeued: 4 -packets transmitted to vdev: 4 -packets freed: 0 Restarting........ *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1073_cea9cc51241 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Segmentation fault *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1087_cec3ab006b1 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used RING: Cannot reserve memory EAL: Error - exiting with code: 1 Cause: File exists:create_mp_ring_vdev:634 Hugepage info: cat /proc/meminfo | grep Huge AnonHugePages: 6144 kB HugePages_Total: 300 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Can you please help me in finding the issue. Thanks, Rajesh kumar S R ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory 2018-03-17 15:58 ` Rosen, Rami @ 2018-03-18 17:52 ` RAJESH KUMAR S.R 2018-03-18 19:09 ` Rosen, Rami 0 siblings, 1 reply; 6+ messages in thread From: RAJESH KUMAR S.R @ 2018-03-18 17:52 UTC (permalink / raw) To: Rosen, Rami, users Hi Rami, Thanks for the response. DPDK version I'm using is 18.02.0. The primary process I'm using is custom program which uses dpdk. I have initialized pdump in the primary process using "rte_pdump_init(NULL)" similar to that in testpmd example. I'm using the pdump tool without making any changes. I enabled the following flags 1. CONFIG_RTE_LIBRTE_PDUMP=y 2. CONFIG_RTE_LIBRTE_PMD_PCAP=y I added the libpcap library The problem I'm facing is bit different from what I mentioned earlier. The first time when I run, I'm able to see the packets getting saved in the output pcap file, rx.pcap and tx.pcap. The second time when I run, I'm getting a segmentation fault as I have pasted the output in the previous message. I'm using gdb for debugging, the functions rte_eal_init(), create_mp_ring_vdev(); enable_pdump(); are working fine. The segmentation fault is occuring in rte_eth_tx_burst function(dump_packets ->pdump_rxtx-->rte_eth_tx_burst) The rings tx_ring_0 and rx_ring_0 are not getting freed. I checked that with rte_memzone_dump(). So, next time when I start the pdump tool I was getting " memzone <RG_rx_ring_0> already exists . RING: Cannot reserve memory" error. So, issue is in rte_eth_tx_burst function, where the "dev->data->tx_queues[queue_id]" is NULL. " EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 0 on socket 0 EAL: Support maximum 128 logical core(s) by configuration. EAL: Detected 2 lcore(s) EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or directory) EAL: VFIO PCI modules not loaded EAL: Multi-process socket /var/run/.rte_unix_1817_14c6748457c5 [New Thread 0x7ffff67d4700 (LWP 1821)] EAL: Probing VFIO support... EAL: Module /sys/module/vfio not found! error 2 (No such file or directory) EAL: VFIO modules not loaded, skipping VFIO support... EAL: Module /sys/module/vfio not found! error 2 (No such file or directory) EAL: Setting up physically contiguous 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 300 files EAL: Mapped segment 0 of size 0x400000 EAL: Mapped segment 1 of size 0x200000 EAL: Mapped segment 2 of size 0x200000 EAL: Mapped segment 3 of size 0x200000 EAL: Mapped segment 4 of size 0x24c00000 EAL: Mapped segment 5 of size 0x200000 EAL: TSC frequency is ~2904192 KHz EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: Master lcore 0 is ready (tid=f7fec8c0;cpuset=[0]) [New Thread 0x7ffff5fd3700 (LWP 1822)] EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI Port IO found start=0xc060 EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI Port IO found start=0xc080 EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Thread 1 "dpdk-pdump" received signal SIGSEGV, Segmentation fault. 0x000000000043ee07 in rte_eth_tx_burst (port_id=4, queue_id=0, tx_pkts=0x7fffffffe8c0, nb_pkts=1) " I don't know why tx_queues is NULL. I'm currently checking where that is getting populated. Thanks & Regards, Rajesh kumar S R On Sat, Mar 17, 2018 at 9:28 PM, Rosen, Rami <rami.rosen@intel.com> wrote: > Hi Rajesh, > > Can you please provide more details: > > - Which DPDK version are you using? > > - dpdk-pdump is a secondary process and must be launched along with > any primary process. Which is the primary process you are running ? > is it something that you developed on your own/took something from DPDK > examples (with/without extending it), etc ? > > Regards, > Rami Rosen > > > -----Original Message----- > From: users [mailto:users-bounces@dpdk.org] On Behalf Of RAJESH KUMAR S.R > Sent: Monday, March 12, 2018 12:25 > To: users@dpdk.org > Subject: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory > > Hi, > > I am new to dpdk. > I'm trying to use dpdk-pdump tool. I'm able to capture packets on dpdk > ports. > > But, I'm facing the following issue > I'm getting a error "RING:Cannot reserve memory" while trying to restart > the pdump tool or running 2 instances of pdump. > I have also used the rte_eal_cleanup while exiting pdump main function. > > > Output: > * sudo /opt/pep/active/bin/dpdk-pdump -- --pdump > 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* > [sudo] password for admin: > EAL: Detected 2 lcore(s) > EAL: Multi-process socket /var/run/.rte_unix_1061_ce297dfe759 > EAL: Probing VFIO support... > EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the > kernel. > EAL: This may cause issues with mapping memory into secondary processes > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using > unreliable clock cycles ! > EAL: PCI device 0000:00:03.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:04.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:05.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: Requested device 0000:00:05.0 cannot be used > PMD: Initializing pmd_pcap for net_pcap_rx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 Port 2 MAC: 00 00 00 01 > 02 03 > PMD: Initializing pmd_pcap for net_pcap_tx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 Port 3 MAC: 00 00 00 01 > 02 03 ^C > > Signal 2 received, preparing to exit... > ##### PDUMP DEBUG STATS ##### > -packets dequeued: 4 > -packets transmitted to vdev: 4 > -packets freed: 0 > > > Restarting........ > > *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump > 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* > EAL: Detected 2 lcore(s) > EAL: Multi-process socket /var/run/.rte_unix_1073_cea9cc51241 > EAL: Probing VFIO support... > EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the > kernel. > EAL: This may cause issues with mapping memory into secondary processes > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using > unreliable clock cycles ! > EAL: PCI device 0000:00:03.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:04.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:05.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: Requested device 0000:00:05.0 cannot be used > PMD: Initializing pmd_pcap for net_pcap_rx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 > PMD: Initializing pmd_pcap for net_pcap_tx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 Segmentation fault > > *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump > 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* > EAL: Detected 2 lcore(s) > EAL: Multi-process socket /var/run/.rte_unix_1087_cec3ab006b1 > EAL: Probing VFIO support... > EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the > kernel. > EAL: This may cause issues with mapping memory into secondary processes > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using > unreliable clock cycles ! > EAL: PCI device 0000:00:03.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:04.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:05.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: Requested device 0000:00:05.0 cannot be used > RING: Cannot reserve memory > EAL: Error - exiting with code: 1 > Cause: File exists:create_mp_ring_vdev:634 > > > > Hugepage info: > cat /proc/meminfo | grep Huge > AnonHugePages: 6144 kB > HugePages_Total: 300 > HugePages_Free: 0 > HugePages_Rsvd: 0 > HugePages_Surp: 0 > Hugepagesize: 2048 kB > > > Can you please help me in finding the issue. > > > > Thanks, > Rajesh kumar S R > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory 2018-03-18 17:52 ` RAJESH KUMAR S.R @ 2018-03-18 19:09 ` Rosen, Rami 2018-03-19 11:24 ` RAJESH KUMAR S.R 0 siblings, 1 reply; 6+ messages in thread From: Rosen, Rami @ 2018-03-18 19:09 UTC (permalink / raw) To: RAJESH KUMAR S.R, users Hi Rajesh, First notice the warning you get: >EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. >EAL: This may cause issues with mapping memory into secondary processes So first, I would suggest that you will disable ASLR and try again, to verify it is not the cause. IIRC, in the past I had some issue with dpdk-pdump when ASLR was not enabled (but IIRC the issue itself was different – probably not getting packets written to the pcap file or something else). Disabling ASLR is done easily: Probably you have : cat /proc/sys/kernel/randomize_va_space gives “2” To disable it run echo 0 > /proc/sys/kernel/randomize_va_space And also I would suggest to try it with testpmd. I actually ran it today with DPDK 18.02 with testpmd, and it worked for me. I sent L2 traffic with scapy, and captured only RX packets with rx-dev; any other L2 packet generator should be OK. Regards, Rami Rosen From: RAJESH KUMAR S.R [mailto:rajuuu1992@gmail.com] Sent: Sunday, March 18, 2018 19:52 To: Rosen, Rami <rami.rosen@intel.com>; users@dpdk.org Subject: Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory Hi Rami, Thanks for the response. DPDK version I'm using is 18.02.0. The primary process I'm using is custom program which uses dpdk. I have initialized pdump in the primary process using "rte_pdump_init(NULL)" similar to that in testpmd example. I'm using the pdump tool without making any changes. I enabled the following flags 1. CONFIG_RTE_LIBRTE_PDUMP=y 2. CONFIG_RTE_LIBRTE_PMD_PCAP=y I added the libpcap library The problem I'm facing is bit different from what I mentioned earlier. The first time when I run, I'm able to see the packets getting saved in the output pcap file, rx.pcap and tx.pcap. The second time when I run, I'm getting a segmentation fault as I have pasted the output in the previous message. I'm using gdb for debugging, the functions rte_eal_init(), create_mp_ring_vdev(); enable_pdump(); are working fine. The segmentation fault is occuring in rte_eth_tx_burst function(dump_packets ->pdump_rxtx-->rte_eth_tx_burst) The rings tx_ring_0 and rx_ring_0 are not getting freed. I checked that with rte_memzone_dump(). So, next time when I start the pdump tool I was getting " memzone <RG_rx_ring_0> already exists . RING: Cannot reserve memory" error. So, issue is in rte_eth_tx_burst function, where the "dev->data->tx_queues[queue_id]" is NULL. " EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 0 on socket 0 EAL: Support maximum 128 logical core(s) by configuration. EAL: Detected 2 lcore(s) EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or directory) EAL: VFIO PCI modules not loaded EAL: Multi-process socket /var/run/.rte_unix_1817_14c6748457c5 [New Thread 0x7ffff67d4700 (LWP 1821)] EAL: Probing VFIO support... EAL: Module /sys/module/vfio not found! error 2 (No such file or directory) EAL: VFIO modules not loaded, skipping VFIO support... EAL: Module /sys/module/vfio not found! error 2 (No such file or directory) EAL: Setting up physically contiguous 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 300 files EAL: Mapped segment 0 of size 0x400000 EAL: Mapped segment 1 of size 0x200000 EAL: Mapped segment 2 of size 0x200000 EAL: Mapped segment 3 of size 0x200000 EAL: Mapped segment 4 of size 0x24c00000 EAL: Mapped segment 5 of size 0x200000 EAL: TSC frequency is ~2904192 KHz EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: Master lcore 0 is ready (tid=f7fec8c0;cpuset=[0]) [New Thread 0x7ffff5fd3700 (LWP 1822)] EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI Port IO found start=0xc060 EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI Port IO found start=0xc080 EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Thread 1 "dpdk-pdump" received signal SIGSEGV, Segmentation fault. 0x000000000043ee07 in rte_eth_tx_burst (port_id=4, queue_id=0, tx_pkts=0x7fffffffe8c0, nb_pkts=1) " I don't know why tx_queues is NULL. I'm currently checking where that is getting populated. Thanks & Regards, Rajesh kumar S R On Sat, Mar 17, 2018 at 9:28 PM, Rosen, Rami <rami.rosen@intel.com<mailto:rami.rosen@intel.com>> wrote: Hi Rajesh, Can you please provide more details: - Which DPDK version are you using? - dpdk-pdump is a secondary process and must be launched along with any primary process. Which is the primary process you are running ? is it something that you developed on your own/took something from DPDK examples (with/without extending it), etc ? Regards, Rami Rosen -----Original Message----- From: users [mailto:users-bounces@dpdk.org<mailto:users-bounces@dpdk.org>] On Behalf Of RAJESH KUMAR S.R Sent: Monday, March 12, 2018 12:25 To: users@dpdk.org<mailto:users@dpdk.org> Subject: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory Hi, I am new to dpdk. I'm trying to use dpdk-pdump tool. I'm able to capture packets on dpdk ports. But, I'm facing the following issue I'm getting a error "RING:Cannot reserve memory" while trying to restart the pdump tool or running 2 instances of pdump. I have also used the rte_eal_cleanup while exiting pdump main function. Output: * sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* [sudo] password for admin: EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1061_ce297dfe759 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Port 2 MAC: 00 00 00 01 02 03 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Port 3 MAC: 00 00 00 01 02 03 ^C Signal 2 received, preparing to exit... ##### PDUMP DEBUG STATS ##### -packets dequeued: 4 -packets transmitted to vdev: 4 -packets freed: 0 Restarting........ *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1073_cea9cc51241 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used PMD: Initializing pmd_pcap for net_pcap_rx_0 PMD: Creating pcap-backed ethdev on numa socket -1 PMD: Initializing pmd_pcap for net_pcap_tx_0 PMD: Creating pcap-backed ethdev on numa socket -1 Segmentation fault *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* EAL: Detected 2 lcore(s) EAL: Multi-process socket /var/run/.rte_unix_1087_cec3ab006b1 EAL: Probing VFIO support... EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel. EAL: This may cause issues with mapping memory into secondary processes EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles ! EAL: PCI device 0000:00:03.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:04.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: PCI device 0000:00:05.0 on NUMA socket -1 EAL: Invalid NUMA socket, default to 0 EAL: probe driver: 1af4:1000 net_virtio EAL: Requested device 0000:00:05.0 cannot be used RING: Cannot reserve memory EAL: Error - exiting with code: 1 Cause: File exists:create_mp_ring_vdev:634 Hugepage info: cat /proc/meminfo | grep Huge AnonHugePages: 6144 kB HugePages_Total: 300 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Can you please help me in finding the issue. Thanks, Rajesh kumar S R ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory 2018-03-18 19:09 ` Rosen, Rami @ 2018-03-19 11:24 ` RAJESH KUMAR S.R 2018-03-20 9:25 ` RAJESH KUMAR S.R 0 siblings, 1 reply; 6+ messages in thread From: RAJESH KUMAR S.R @ 2018-03-19 11:24 UTC (permalink / raw) To: Rosen, Rami, users Hi Rami, Thanks for the response. I used "echo 0 > /proc/sys/kernel/randomize_va_space " for disabling ASLR, but the error still exists. I checked with testpmd as primary process and the same error occurs when I restart the pdump tool. I'm just trying to debug the segmentation fault in rte_eth_tx_burst function for now. Thanks & Regards, Rajesh kumar S R On Mon, Mar 19, 2018 at 12:39 AM, Rosen, Rami <rami.rosen@intel.com> wrote: > Hi Rajesh, > > > > First notice the warning you get: > > >EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the > kernel. > > >EAL: This may cause issues with mapping memory into secondary processes > > > > So first, I would suggest that you will disable ASLR and try again, to > verify it is not the cause. IIRC, in the past I had some issue with > dpdk-pdump when ASLR was not enabled (but IIRC the issue itself was > different – probably not getting packets written to the pcap file or > something else). > > Disabling ASLR is done easily: > > Probably you have : cat /proc/sys/kernel/randomize_va_space > > gives “2” > > To disable it run > > echo 0 > /proc/sys/kernel/randomize_va_space > > > > And also I would suggest to try it with testpmd. I actually ran it today > with > > DPDK 18.02 with testpmd, and it worked for me. I sent L2 traffic with > scapy, and captured only RX packets with rx-dev; any other L2 packet > generator should be OK. > > > > Regards, > > Rami Rosen > > > > > > > > > > *From:* RAJESH KUMAR S.R [mailto:rajuuu1992@gmail.com] > *Sent:* Sunday, March 18, 2018 19:52 > *To:* Rosen, Rami <rami.rosen@intel.com>; users@dpdk.org > *Subject:* Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve > memory > > > > > > Hi Rami, > > Thanks for the response. > > DPDK version I'm using is 18.02.0. > > The primary process I'm using is custom program which uses dpdk. > > I have initialized pdump in the primary process using > "rte_pdump_init(NULL)" similar to that in testpmd example. > > I'm using the pdump tool without making any changes. > > > > I enabled the following flags > 1. CONFIG_RTE_LIBRTE_PDUMP=y > 2. CONFIG_RTE_LIBRTE_PMD_PCAP=y > > I added the libpcap library > > The problem I'm facing is bit different from what I mentioned earlier. > > The first time when I run, I'm able to see the packets getting saved in > the output pcap file, rx.pcap and tx.pcap. > > The second time when I run, I'm getting a segmentation fault as I have > pasted the output in the previous message. > > I'm using gdb for debugging, the functions rte_eal_init(), > create_mp_ring_vdev(); > enable_pdump(); are working fine. > > > > The segmentation fault is occuring in rte_eth_tx_burst > function(dump_packets ->pdump_rxtx-->rte_eth_tx_burst) > > The rings tx_ring_0 and rx_ring_0 are not getting freed. I checked that > with rte_memzone_dump(). So, next time when I start the pdump tool I was > getting " memzone <RG_rx_ring_0> already exists . RING: Cannot reserve > memory" error. > > So, issue is in rte_eth_tx_burst function, where the > "dev->data->tx_queues[queue_id]" is NULL. > > > " > EAL: Detected lcore 0 as core 0 on socket 0 > EAL: Detected lcore 1 as core 0 on socket 0 > EAL: Support maximum 128 logical core(s) by configuration. > EAL: Detected 2 lcore(s) > EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or > directory) > EAL: VFIO PCI modules not loaded > EAL: Multi-process socket /var/run/.rte_unix_1817_14c6748457c5 > [New Thread 0x7ffff67d4700 (LWP 1821)] > EAL: Probing VFIO support... > EAL: Module /sys/module/vfio not found! error 2 (No such file or directory) > EAL: VFIO modules not loaded, skipping VFIO support... > EAL: Module /sys/module/vfio not found! error 2 (No such file or directory) > EAL: Setting up physically contiguous 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 300 files > EAL: Mapped segment 0 of size 0x400000 > EAL: Mapped segment 1 of size 0x200000 > EAL: Mapped segment 2 of size 0x200000 > EAL: Mapped segment 3 of size 0x200000 > EAL: Mapped segment 4 of size 0x24c00000 > EAL: Mapped segment 5 of size 0x200000 > EAL: TSC frequency is ~2904192 KHz > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using > unreliable clock cycles ! > EAL: Master lcore 0 is ready (tid=f7fec8c0;cpuset=[0]) > [New Thread 0x7ffff5fd3700 (LWP 1822)] > EAL: PCI device 0000:00:03.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI Port IO found start=0xc060 > EAL: PCI device 0000:00:04.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI Port IO found start=0xc080 > EAL: PCI device 0000:00:05.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: Requested device 0000:00:05.0 cannot be used > PMD: Initializing pmd_pcap for net_pcap_rx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 > PMD: Initializing pmd_pcap for net_pcap_tx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 > > Thread 1 "dpdk-pdump" received signal SIGSEGV, Segmentation fault. > 0x000000000043ee07 in rte_eth_tx_burst (port_id=4, queue_id=0, > tx_pkts=0x7fffffffe8c0, nb_pkts=1) > " > > I don't know why tx_queues is NULL. > > I'm currently checking where that is getting populated. > > > > Thanks & Regards, > > Rajesh kumar S R > > > > > > On Sat, Mar 17, 2018 at 9:28 PM, Rosen, Rami <rami.rosen@intel.com> wrote: > > Hi Rajesh, > > Can you please provide more details: > > - Which DPDK version are you using? > > - dpdk-pdump is a secondary process and must be launched along with > any primary process. Which is the primary process you are running ? > is it something that you developed on your own/took something from DPDK > examples (with/without extending it), etc ? > > Regards, > Rami Rosen > > > -----Original Message----- > From: users [mailto:users-bounces@dpdk.org] On Behalf Of RAJESH KUMAR S.R > Sent: Monday, March 12, 2018 12:25 > To: users@dpdk.org > Subject: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory > > Hi, > > I am new to dpdk. > I'm trying to use dpdk-pdump tool. I'm able to capture packets on dpdk > ports. > > But, I'm facing the following issue > I'm getting a error "RING:Cannot reserve memory" while trying to restart > the pdump tool or running 2 instances of pdump. > I have also used the rte_eal_cleanup while exiting pdump main function. > > > Output: > * sudo /opt/pep/active/bin/dpdk-pdump -- --pdump > 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* > > [sudo] password for admin: > EAL: Detected 2 lcore(s) > EAL: Multi-process socket /var/run/.rte_unix_1061_ce297dfe759 > EAL: Probing VFIO support... > EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the > kernel. > EAL: This may cause issues with mapping memory into secondary processes > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using > unreliable clock cycles ! > EAL: PCI device 0000:00:03.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:04.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:05.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: Requested device 0000:00:05.0 cannot be used > PMD: Initializing pmd_pcap for net_pcap_rx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 Port 2 MAC: 00 00 00 01 > 02 03 > PMD: Initializing pmd_pcap for net_pcap_tx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 Port 3 MAC: 00 00 00 01 > 02 03 ^C > > Signal 2 received, preparing to exit... > ##### PDUMP DEBUG STATS ##### > -packets dequeued: 4 > -packets transmitted to vdev: 4 > -packets freed: 0 > > > Restarting........ > > *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump > 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* > EAL: Detected 2 lcore(s) > EAL: Multi-process socket /var/run/.rte_unix_1073_cea9cc51241 > EAL: Probing VFIO support... > EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the > kernel. > EAL: This may cause issues with mapping memory into secondary processes > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using > unreliable clock cycles ! > EAL: PCI device 0000:00:03.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:04.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:05.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: Requested device 0000:00:05.0 cannot be used > PMD: Initializing pmd_pcap for net_pcap_rx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 > PMD: Initializing pmd_pcap for net_pcap_tx_0 > PMD: Creating pcap-backed ethdev on numa socket -1 Segmentation fault > > *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump > 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* > > EAL: Detected 2 lcore(s) > EAL: Multi-process socket /var/run/.rte_unix_1087_cec3ab006b1 > EAL: Probing VFIO support... > EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the > kernel. > EAL: This may cause issues with mapping memory into secondary processes > EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using > unreliable clock cycles ! > EAL: PCI device 0000:00:03.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:04.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: PCI device 0000:00:05.0 on NUMA socket -1 > EAL: Invalid NUMA socket, default to 0 > EAL: probe driver: 1af4:1000 net_virtio > EAL: Requested device 0000:00:05.0 cannot be used > RING: Cannot reserve memory > EAL: Error - exiting with code: 1 > Cause: File exists:create_mp_ring_vdev:634 > > > > Hugepage info: > cat /proc/meminfo | grep Huge > AnonHugePages: 6144 kB > HugePages_Total: 300 > HugePages_Free: 0 > HugePages_Rsvd: 0 > HugePages_Surp: 0 > Hugepagesize: 2048 kB > > > Can you please help me in finding the issue. > > > > Thanks, > Rajesh kumar S R > > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory 2018-03-19 11:24 ` RAJESH KUMAR S.R @ 2018-03-20 9:25 ` RAJESH KUMAR S.R 0 siblings, 0 replies; 6+ messages in thread From: RAJESH KUMAR S.R @ 2018-03-20 9:25 UTC (permalink / raw) To: Rosen, Rami, users Hi Rami, I don't have a proper understanding of the whole flow. I'm not sure what I have missed. Need some help Got some info while debugging. There is a structure "rte_eth_dev_shared_data". The "data" field in this structure has some old data from previous run. It is getting assigned in rte_eth_dev_shared_data() --> mz = rte_memzone_lookup(MZ_RTE_ETH_DEV_DATA); .... rte_eth_dev_shared_data = mz->addr; a. Function: rte_eth_dev_find_free_port backtrace: (create_mp_ring_vdev -->rte_eth_dev_attach((devargs=0x7fffffffe6e0 "net_pcap_rx_0,tx_pcap=/tmp/rx.pcap", port_id=0x7fffffffe6ca)) --> rte_eal_dev_attach -->rte_eal_hotplug_add --> vdev_plug---> vdev_probe_all_drivers --> pmd_pcap_probe --> eth_from_pcaps --> eth_from_pcaps_common -->pmd_init_internals --> rte_eth_vdev_allocate--> rte_eth_dev_allocate --> rte_eth_dev_find_free_port) During the first run, Port_ids that are allocated from rte_eth_dev_find_free_port function are 2(rx) and 3(tx). The data values in rte_eth_dev_shared_data are rte_eth_dev_shared_data->data[2] {name = "net_pcap_rx_0", .....} p rte_eth_dev_shared_data->data[3] {name = "net_pcap_tx_0", ....} The packet capture is working fine. b. During the second run, In function, rte_eth_dev_find_free_port ".... if (rte_eth_dev_shared_data->data[i].name[0] == '\0') { RTE_ASSERT(rte_eth_devices[i].state == RTE_ETH_DEV_UNUSED); return i; } ..." p rte_eth_dev_shared_data->data[2] $3 = {name = "net_pcap_rx_0", .....} p rte_eth_dev_shared_data->data[3] $4 = {name = "net_pcap_tx_0", ....} The previous data exists here. The port_ids that is returned by rte_eth_dev_find_free_port are 4(rx) & 5(tx). c. pdump/main.c -> In configure_vdev() , for port_id=4 const uint8_t nb_ports = rte_eth_dev_count(); (= 3) This check is failing if (port_id > nb_ports) return -1; In configure_vdev() , for port_id=5 const uint8_t nb_ports = rte_eth_dev_count(); (= 4) This check is failing if (port_id > nb_ports) return -1; rte_eth_dev_configure, rte_eth_dev_start are not getting called. So, In the rte_eth_tx_burst (dump_packets -->pdump_rxtx-->rte_eth_tx_burst) , some data in rte_eth_devices[port_id] seems to be NULL. I'll update with more info Regards, Rajesh Kumar S R On Mon, Mar 19, 2018 at 4:54 PM, RAJESH KUMAR S.R <rajuuu1992@gmail.com> wrote: > Hi Rami, > Thanks for the response. > > I used "echo 0 > /proc/sys/kernel/randomize_va_space " > for disabling ASLR, but the error still exists. > I checked with testpmd as primary process and the same error occurs when I > restart the pdump tool. > > I'm just trying to debug the segmentation fault in rte_eth_tx_burst > function for now. > > > > Thanks & Regards, > Rajesh kumar S R > > On Mon, Mar 19, 2018 at 12:39 AM, Rosen, Rami <rami.rosen@intel.com> > wrote: > >> Hi Rajesh, >> >> >> >> First notice the warning you get: >> >> >EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in >> the kernel. >> >> >EAL: This may cause issues with mapping memory into secondary >> processes >> >> >> >> So first, I would suggest that you will disable ASLR and try again, to >> verify it is not the cause. IIRC, in the past I had some issue with >> dpdk-pdump when ASLR was not enabled (but IIRC the issue itself was >> different – probably not getting packets written to the pcap file or >> something else). >> >> Disabling ASLR is done easily: >> >> Probably you have : cat /proc/sys/kernel/randomize_va_space >> >> gives “2” >> >> To disable it run >> >> echo 0 > /proc/sys/kernel/randomize_va_space >> >> >> >> And also I would suggest to try it with testpmd. I actually ran it today >> with >> >> DPDK 18.02 with testpmd, and it worked for me. I sent L2 traffic with >> scapy, and captured only RX packets with rx-dev; any other L2 packet >> generator should be OK. >> >> >> >> Regards, >> >> Rami Rosen >> >> >> >> >> >> >> >> >> >> *From:* RAJESH KUMAR S.R [mailto:rajuuu1992@gmail.com] >> *Sent:* Sunday, March 18, 2018 19:52 >> *To:* Rosen, Rami <rami.rosen@intel.com>; users@dpdk.org >> *Subject:* Re: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve >> memory >> >> >> >> >> >> Hi Rami, >> >> Thanks for the response. >> >> DPDK version I'm using is 18.02.0. >> >> The primary process I'm using is custom program which uses dpdk. >> >> I have initialized pdump in the primary process using >> "rte_pdump_init(NULL)" similar to that in testpmd example. >> >> I'm using the pdump tool without making any changes. >> >> >> >> I enabled the following flags >> 1. CONFIG_RTE_LIBRTE_PDUMP=y >> 2. CONFIG_RTE_LIBRTE_PMD_PCAP=y >> >> I added the libpcap library >> >> The problem I'm facing is bit different from what I mentioned earlier. >> >> The first time when I run, I'm able to see the packets getting saved in >> the output pcap file, rx.pcap and tx.pcap. >> >> The second time when I run, I'm getting a segmentation fault as I have >> pasted the output in the previous message. >> >> I'm using gdb for debugging, the functions rte_eal_init(), >> create_mp_ring_vdev(); >> enable_pdump(); are working fine. >> >> >> >> The segmentation fault is occuring in rte_eth_tx_burst >> function(dump_packets ->pdump_rxtx-->rte_eth_tx_burst) >> >> The rings tx_ring_0 and rx_ring_0 are not getting freed. I checked that >> with rte_memzone_dump(). So, next time when I start the pdump tool I was >> getting " memzone <RG_rx_ring_0> already exists . RING: Cannot reserve >> memory" error. >> >> So, issue is in rte_eth_tx_burst function, where the >> "dev->data->tx_queues[queue_id]" is NULL. >> >> >> " >> EAL: Detected lcore 0 as core 0 on socket 0 >> EAL: Detected lcore 1 as core 0 on socket 0 >> EAL: Support maximum 128 logical core(s) by configuration. >> EAL: Detected 2 lcore(s) >> EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or >> directory) >> EAL: VFIO PCI modules not loaded >> EAL: Multi-process socket /var/run/.rte_unix_1817_14c6748457c5 >> [New Thread 0x7ffff67d4700 (LWP 1821)] >> EAL: Probing VFIO support... >> EAL: Module /sys/module/vfio not found! error 2 (No such file or >> directory) >> EAL: VFIO modules not loaded, skipping VFIO support... >> EAL: Module /sys/module/vfio not found! error 2 (No such file or >> directory) >> EAL: Setting up physically contiguous 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 300 files >> EAL: Mapped segment 0 of size 0x400000 >> EAL: Mapped segment 1 of size 0x200000 >> EAL: Mapped segment 2 of size 0x200000 >> EAL: Mapped segment 3 of size 0x200000 >> EAL: Mapped segment 4 of size 0x24c00000 >> EAL: Mapped segment 5 of size 0x200000 >> EAL: TSC frequency is ~2904192 KHz >> EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using >> unreliable clock cycles ! >> EAL: Master lcore 0 is ready (tid=f7fec8c0;cpuset=[0]) >> [New Thread 0x7ffff5fd3700 (LWP 1822)] >> EAL: PCI device 0000:00:03.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI Port IO found start=0xc060 >> EAL: PCI device 0000:00:04.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI Port IO found start=0xc080 >> EAL: PCI device 0000:00:05.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: Requested device 0000:00:05.0 cannot be used >> PMD: Initializing pmd_pcap for net_pcap_rx_0 >> PMD: Creating pcap-backed ethdev on numa socket -1 >> PMD: Initializing pmd_pcap for net_pcap_tx_0 >> PMD: Creating pcap-backed ethdev on numa socket -1 >> >> Thread 1 "dpdk-pdump" received signal SIGSEGV, Segmentation fault. >> 0x000000000043ee07 in rte_eth_tx_burst (port_id=4, queue_id=0, >> tx_pkts=0x7fffffffe8c0, nb_pkts=1) >> " >> >> I don't know why tx_queues is NULL. >> >> I'm currently checking where that is getting populated. >> >> >> >> Thanks & Regards, >> >> Rajesh kumar S R >> >> >> >> >> >> On Sat, Mar 17, 2018 at 9:28 PM, Rosen, Rami <rami.rosen@intel.com> >> wrote: >> >> Hi Rajesh, >> >> Can you please provide more details: >> >> - Which DPDK version are you using? >> >> - dpdk-pdump is a secondary process and must be launched along with >> any primary process. Which is the primary process you are running ? >> is it something that you developed on your own/took something from DPDK >> examples (with/without extending it), etc ? >> >> Regards, >> Rami Rosen >> >> >> -----Original Message----- >> From: users [mailto:users-bounces@dpdk.org] On Behalf Of RAJESH KUMAR S.R >> Sent: Monday, March 12, 2018 12:25 >> To: users@dpdk.org >> Subject: [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory >> >> Hi, >> >> I am new to dpdk. >> I'm trying to use dpdk-pdump tool. I'm able to capture packets on dpdk >> ports. >> >> But, I'm facing the following issue >> I'm getting a error "RING:Cannot reserve memory" while trying to restart >> the pdump tool or running 2 instances of pdump. >> I have also used the rte_eal_cleanup while exiting pdump main function. >> >> >> Output: >> * sudo /opt/pep/active/bin/dpdk-pdump -- --pdump >> 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* >> >> [sudo] password for admin: >> EAL: Detected 2 lcore(s) >> EAL: Multi-process socket /var/run/.rte_unix_1061_ce297dfe759 >> EAL: Probing VFIO support... >> EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the >> kernel. >> EAL: This may cause issues with mapping memory into secondary processes >> EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using >> unreliable clock cycles ! >> EAL: PCI device 0000:00:03.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI device 0000:00:04.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI device 0000:00:05.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: Requested device 0000:00:05.0 cannot be used >> PMD: Initializing pmd_pcap for net_pcap_rx_0 >> PMD: Creating pcap-backed ethdev on numa socket -1 Port 2 MAC: 00 00 00 >> 01 02 03 >> PMD: Initializing pmd_pcap for net_pcap_tx_0 >> PMD: Creating pcap-backed ethdev on numa socket -1 Port 3 MAC: 00 00 00 >> 01 02 03 ^C >> >> Signal 2 received, preparing to exit... >> ##### PDUMP DEBUG STATS ##### >> -packets dequeued: 4 >> -packets transmitted to vdev: 4 >> -packets freed: 0 >> >> >> Restarting........ >> >> *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump >> 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* >> EAL: Detected 2 lcore(s) >> EAL: Multi-process socket /var/run/.rte_unix_1073_cea9cc51241 >> EAL: Probing VFIO support... >> EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the >> kernel. >> EAL: This may cause issues with mapping memory into secondary processes >> EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using >> unreliable clock cycles ! >> EAL: PCI device 0000:00:03.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI device 0000:00:04.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI device 0000:00:05.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: Requested device 0000:00:05.0 cannot be used >> PMD: Initializing pmd_pcap for net_pcap_rx_0 >> PMD: Creating pcap-backed ethdev on numa socket -1 >> PMD: Initializing pmd_pcap for net_pcap_tx_0 >> PMD: Creating pcap-backed ethdev on numa socket -1 Segmentation fault >> >> *> sudo /opt/pep/active/bin/dpdk-pdump -- --pdump >> 'port=0,queue=*,rx-dev=/tmp/rx.pcap,tx-dev=/tmp/tx.pcap'* >> >> EAL: Detected 2 lcore(s) >> EAL: Multi-process socket /var/run/.rte_unix_1087_cec3ab006b1 >> EAL: Probing VFIO support... >> EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the >> kernel. >> EAL: This may cause issues with mapping memory into secondary processes >> EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using >> unreliable clock cycles ! >> EAL: PCI device 0000:00:03.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI device 0000:00:04.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: PCI device 0000:00:05.0 on NUMA socket -1 >> EAL: Invalid NUMA socket, default to 0 >> EAL: probe driver: 1af4:1000 net_virtio >> EAL: Requested device 0000:00:05.0 cannot be used >> RING: Cannot reserve memory >> EAL: Error - exiting with code: 1 >> Cause: File exists:create_mp_ring_vdev:634 >> >> >> >> Hugepage info: >> cat /proc/meminfo | grep Huge >> AnonHugePages: 6144 kB >> HugePages_Total: 300 >> HugePages_Free: 0 >> HugePages_Rsvd: 0 >> HugePages_Surp: 0 >> Hugepagesize: 2048 kB >> >> >> Can you please help me in finding the issue. >> >> >> >> Thanks, >> Rajesh kumar S R >> >> >> > > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-03-20 9:26 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-03-12 10:25 [dpdk-users] [DPDK-PDUMP] Issue: RING: Cannot reserve memory RAJESH KUMAR S.R 2018-03-17 15:58 ` Rosen, Rami 2018-03-18 17:52 ` RAJESH KUMAR S.R 2018-03-18 19:09 ` Rosen, Rami 2018-03-19 11:24 ` RAJESH KUMAR S.R 2018-03-20 9:25 ` RAJESH KUMAR S.R
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).