DPDK patches and discussions
 help / color / mirror / Atom feed
From: Hamid Ramazani <mrramazani@gmail.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] packet loss: multi-queue (RSS enabled)
Date: Wed, 30 Apr 2014 08:11:39 +0330	[thread overview]
Message-ID: <CACu58pAkC7eO8MH9zu+34FsFH02S8VCjpX+X1d7mC6QXc6LUiw@mail.gmail.com> (raw)

Hi,
I tried a lot (more than a week) to solve the problem myself and not
to bother the list, but I didn't succeed. Maybe other people have the
same problem.

I have a simple program attached. It is intended for simple packet
capturing; captures from interface and writes to memory, and frees the
memory in the next loop.

I have a 10G 82599EB Intel SFI/SFP+ network interface for capturing packets.
As you may know, this network card supports up to 128 RSS queues.

This is just a test, so the packets being sent at 820Kpps (kilo packet
per second). Each packet is 1500B (fixed size); it is 9.16 Gbit per
second.
Of course when the packet per seconds goes up and packet size goes
down (e.g. 400B per packet), it gets much worse.

When using one queue to receive, I receive all the packets, with no loss.
When I use more than one queue (e.g. 8 queues), with each thread
running on a dedicated core, I have a considerable amount of loss.

Please note that:
1. The computer has 12 * 2.67GHz cores, and it does nothing else but
capturing packets. The CPU is Intel Xeon X5650.
2. The operating system is Ubuntu 12.04.3 LTS

Attached file includes:
main.h
main.c
Makefile
./run.sh

It is configured to be run with 8 queues.

If you want to change the number of receive queues, please:
1. in main.c, change the value assigned to nb_rx_q_of_dev to the desired value.
2. change core mask in run.sh file (since there is SKIP_MASTER, you
should give a core containing one more CPU than given number of
queues).

I think there might be following problems:
1. the port configuration is not fine.
2. freeing memory has a considerable amount of overhead, and may be I
shouldn't do that. But If I don't the pool will be full, won't be? Is
there any other way?

Please help.
Thanks a lot in advance for your help and comments.

All the Best,
Hamid

             reply	other threads:[~2014-04-30  4:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-30  4:41 Hamid Ramazani [this message]
2014-04-30  4:56 ` Jayakumar, Muthurajan
2014-05-07 19:43   ` Daniel Kaminsky

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=CACu58pAkC7eO8MH9zu+34FsFH02S8VCjpX+X1d7mC6QXc6LUiw@mail.gmail.com \
    --to=mrramazani@gmail.com \
    --cc=dev@dpdk.org \
    --cc=thomas.monjalon@6wind.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).