DPDK usage discussions
 help / color / mirror / Atom feed
* [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).