[dpdk-dev] Fwd: high latency detected in IP pipeline example

Victor Huertas vhuertas at gmail.com
Mon Feb 17 17:41:01 CET 2020


Hi all,

I am developing my own DPDK application basing it in the dpdk-stable
ip_pipeline example.
At this moment I am using the 17.11 LTS version of DPDK and I amb observing
some extrange behaviour. Maybe it is an old issue that can be solved
quickly so I would appreciate it if some expert can shade a light on this.

The ip_pipeline example allows you to develop Pipelines that perform
specific packet processing functions (ROUTING, FLOW_CLASSIFYING, etc...).
The thing is that I am extending some of this pipelines with my own.
However I want to take advantage of the built-in ip_pipeline capability of
arbitrarily assigning the logical core where the pipeline (f_run()
function) must be executed so that i can adapt the packet processing power
to the amount of the number of cores available.
Taking this into account I have observed something strange. I show you this
simple example below.

Case 1:
[PIPELINE 0 MASTER core =0]
[PIPELINE 1 core=1] --- SWQ1--->[PIPELINE 2 core=2] -----SWQ2---->
[PIPELINE 3 core=3]

Case 2:
[PIPELINE 0 MASTER core =0]
[PIPELINE 1 core=1] --- SWQ1--->[PIPELINE 2 core=1] -----SWQ2---->
[PIPELINE 3 core=1]

I send a ping between two hosts connected at both sides of the pipeline
model which allows these pings to cross all the pipelines (from 1 to 3).
What I observe in Case 1 (each pipeline has its own thread in different
core) is that the reported RTT is less than 1 ms, whereas in Case 2 (all
pipelines except MASTER are run in the same thread) is 20 ms. Furthermore,
in Case 2, if I increase a lot (hundreds of Mbps) the packet rate this RTT
decreases to 3 or 4 ms.

Has somebody observed this behaviour in the past? Can it be solved somehow?

Thanks a lot for your attention
-- 
Victor


-- 
Victor


More information about the dev mailing list