DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] packet loss: multi-queue (RSS enabled)
@ 2014-04-30  4:41 Hamid Ramazani
  2014-04-30  4:56 ` Jayakumar, Muthurajan
  0 siblings, 1 reply; 3+ messages in thread
From: Hamid Ramazani @ 2014-04-30  4:41 UTC (permalink / raw)
  To: Thomas Monjalon, dev

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] packet loss: multi-queue (RSS enabled)
  2014-04-30  4:41 [dpdk-dev] packet loss: multi-queue (RSS enabled) Hamid Ramazani
@ 2014-04-30  4:56 ` Jayakumar, Muthurajan
  2014-05-07 19:43   ` Daniel Kaminsky
  0 siblings, 1 reply; 3+ messages in thread
From: Jayakumar, Muthurajan @ 2014-04-30  4:56 UTC (permalink / raw)
  To: Hamid Ramazani, Thomas Monjalon, dev

Hi, 
Please find the attached paper http://kfall.net/ucbpage/papers/snc.pdf
Figures 4 and 5 refers about the degradation when the # of queues are increased. 
It refers sweet spot as 2 to 4 queues. 

Have you please verified with smaller # of queues please?

Thanks, 


-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Hamid Ramazani
Sent: Tuesday, April 29, 2014 9:42 PM
To: Thomas Monjalon; dev@dpdk.org
Subject: [dpdk-dev] packet loss: multi-queue (RSS enabled)

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] packet loss: multi-queue (RSS enabled)
  2014-04-30  4:56 ` Jayakumar, Muthurajan
@ 2014-05-07 19:43   ` Daniel Kaminsky
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Kaminsky @ 2014-05-07 19:43 UTC (permalink / raw)
  To: Jayakumar, Muthurajan; +Cc: dev

Hi Hamid,

I didn't see any attachment but I think there is a solution. My first
question is, when you created the mempool, how much did you defined the
memory cache per CPU? In the example program this number is fairly small
(32) and I think that increasing it to something much bigger (e.g. 512)
will significantly improve the CPU scalability.

Regards,
Daniel Kaminsky


On Wed, Apr 30, 2014 at 7:56 AM, Jayakumar, Muthurajan <
muthurajan.jayakumar@intel.com> wrote:

> Hi,
> Please find the attached paper http://kfall.net/ucbpage/papers/snc.pdf
> Figures 4 and 5 refers about the degradation when the # of queues are
> increased.
> It refers sweet spot as 2 to 4 queues.
>
> Have you please verified with smaller # of queues please?
>
> Thanks,
>
>
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Hamid Ramazani
> Sent: Tuesday, April 29, 2014 9:42 PM
> To: Thomas Monjalon; dev@dpdk.org
> Subject: [dpdk-dev] packet loss: multi-queue (RSS enabled)
>
> 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
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-05-07 19:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-30  4:41 [dpdk-dev] packet loss: multi-queue (RSS enabled) Hamid Ramazani
2014-04-30  4:56 ` Jayakumar, Muthurajan
2014-05-07 19:43   ` Daniel Kaminsky

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).