[dpdk-dev] generic load balancing

elevran elevran at gmail.com
Wed Dec 4 21:48:33 CET 2013


Hi Michael,

As far as I know, RSS is used to distribute packets between cores based on
hashing the packets' initial bytes, so round robin distribution is not
possible in hardware. You can configure the hash seed and which fields to
use in the hash. If the input packets have same or very similar bytes, the
hash distribution won't be good, as you had observed.

The Intel network card manuals provide the details.

You may want to consider distributing packets from the PMD queue into
secondary rings/queues using software policy running on the first core.
Look at the multiprocessor samples in the dpdk for reference. Performance
depends on your HW.

Regards,
Etai
בתאריך 4 בדצמ 2013 19:53, "Michael Quicquaro" <michael.quicquaro at gmail.com>
כתב:

> Hi all,
> I am writing a dpdk application that will receive packets from one
> interface and process them.  It does not forward packets in the traditional
> sense.  However, I do need to process them at full line rate and therefore
> need more than one core.  The packets can be somewhat generic in nature and
> can be nearly identical (especially at the beginning of the packet).  I've
> used the rxonly function of testpmd as a model.
>
> I've run into problems in processing a full line rate of data since the
> nature of the data causes all the data to be presented to only one core.  I
> get a large percentage of dropped packets (shows up as Rx-Errors in "port
> stats") because of this.  I've tried modifying the data so that packets
> have different UDP ports and that seems to work when I use --rss-udp
>
> My questions are:
> 1) Is there a way to configure RSS so that it alternates packets to all
> configured cores regardless of the packet data?
>
> 2)  Where is the best place to learn more about RSS and how to configure
> it? I have not found much in the DPDK documentation.
>
> Thanks for the help,
> - Mike
>


More information about the dev mailing list