DPDK usage discussions
 help / color / mirror / Atom feed
From: Alex Kiselev <alex@therouter.net>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: users@dpdk.org
Subject: Re: [dpdk-users] segmention fault while accessing mbuf
Date: Tue, 02 Jun 2020 20:46:04 +0200
Message-ID: <19d55c6a68fbfbac84f5241de36d7a88@therouter.net> (raw)
In-Reply-To: <20200601091729.03ea9e50@hermes.lan>

On 2020-06-01 18:17, Stephen Hemminger wrote:
> On Mon, 01 Jun 2020 15:24:25 +0200
> Alex Kiselev <alex@therouter.net> wrote:
> 
>> Hello,
>> 
>> I've got a segmentation fault error in my data plane path.
>> I am pretty sure the code where the segfault happened is ok,
>> so my guess is that I somehow received a corrupted mbuf.
>> How could I troubleshoot this? Is there any way?
>> Is it possible that other threads of the application
>> corrupted that mbuf?
>> 
>> I would really appriciate any advice.
>> Thanks.
>> 
>> DPDK 18.11.3
>> NIC: 82599ES
>> 
>> Code:
>> 
>> nb_rx = rte_eth_rx_burst(port_id, queue_id, pkts_burst,
>> 		  MAX_PKT_BURST);
>> 
>> ...
>> 
>> for (i=0; i < vec_size; i++) {
>> 	rte_prefetch0(rte_pktmbuf_mtod(m_v[i], void *));
>> 
>> for (i=0; i < vec_size; i++) {
>> 	m = m_v[i];
>> 	eth_hdr = rte_pktmbuf_mtod(m, struct ether_hdr *);
>> 	eth_type = rte_be_to_cpu_16(eth_hdr->ether_type);               <---
>> Segmentation fault
>> 	...
>> 
>> #0  rte_arch_bswap16 (_x=<error reading variable: Cannot access memory
>> at address 0x4d80000000053010>)
> 
> Build with as many of the debug options turned on in the DPDK config,
> and build with EXTRA_CFLAGS of -g.

I usually use this options in some debug environments:

   CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=y
   CONFIG_RTE_MALLOC_DEBUG=y

as well as gcc sanitize options and
some custom memory sanitize techniques
to make sure there is no mempool leaks,
use after free or double free.

But what was your point? Could you please explain
what should I expect from enabling other debug options
or what should I pay attention to?
Should I take a look the PMD drivers debug options?

Unfortunately, there is no way to reproduce the bug.
So I need to understand what could cause it to make
my search more precise.


  reply	other threads:[~2020-06-02 18:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-01 13:24 Alex Kiselev
2020-06-01 16:17 ` Stephen Hemminger
2020-06-02 18:46   ` Alex Kiselev [this message]
2020-06-06 12:59   ` Alex Kiselev
2020-06-07  2:41     ` Cliff Burdick
2020-06-07  9:59       ` Alex Kiselev
2020-06-07 13:16         ` Cliff Burdick
2020-06-07 13:36           ` Alex Kiselev
2020-06-07 15:21             ` Cliff Burdick
2020-06-07 17:11               ` Alex Kiselev
2020-06-07 18:11                 ` Cliff Burdick
2020-06-07 22:56                   ` Alex Kiselev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19d55c6a68fbfbac84f5241de36d7a88@therouter.net \
    --to=alex@therouter.net \
    --cc=stephen@networkplumber.org \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK usage discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/users/0 users/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 users users/ https://inbox.dpdk.org/users \
		users@dpdk.org
	public-inbox-index users

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.users


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git