[dpdk-dev] Fast Path Query

Zhang, Helin helin.zhang at intel.com
Thu Jan 15 07:46:16 CET 2015


Hi Deepak

I got it. Thanks for the detailed explanation!
The performance of packet IO shouldn’t be affected from DPDK side as long as enough cpu cycles can be used. While you cannot expect too much high performance number transmitted from kernel space to user space, as kernel stack or netdev framework might be bottle necks.

Regards,
Helin

From: Deepak Sehrawat [mailto:d.sehrawat at gmail.com]
Sent: Wednesday, January 14, 2015 4:37 PM
To: Zhang, Helin
Subject: Re: [dpdk-dev] Fast Path Query


Hi Helin,

Let me elaborate my case a bit. Consider that Linux is controlling a  NIC port which is receiving Control as well as Data packets. These control packets are processed by a normal Linux userspace application; whereas the data packets are forwarded to DPDK userplane application using KNI (i.e from Linux kernel to DPDK). This userplane application, after processing these data packets, forwards them out (using PMD) of another NIC port (controlled by DPDK PMD).

Thanks,
Deepak
On Wed, Jan 14, 2015 at 1:46 PM, Zhang, Helin <helin.zhang at intel.com<mailto:helin.zhang at intel.com>> wrote:
Hi Deepak

Still a bit confused. Linux driver is controlling the NIC port, are there any other ports controlled by DPDK? I guess yes.
If yes, there must have one or more user space thread who is responsible for packet exchanging between kernel and user space via exception_path or KNI. Packet IO speed can be still the maximum, depends on what percentage of cpu cycles can be used for packet IO.
Performance may or may not be affected depends on if there are enough cpu cycles can be used for packet IO.

Regards,
Helin

From: Deepak Sehrawat [mailto:d.sehrawat at gmail.com<mailto:d.sehrawat at gmail.com>]
Sent: Wednesday, January 14, 2015 4:08 PM
To: Zhang, Helin

Subject: Re: [dpdk-dev] Fast Path Query


Hi Helin,

My mistake, I was actually refering to the case when Linux is controlling the NIC port (and not DPDK) and it is then using KNI to pass data plane packets (say IPSec packets) to DPDK application. So will it effect the fast path performance in this scenario?

Thanks,
Deepak
On Wed, Jan 14, 2015 at 1:32 PM, Zhang, Helin <helin.zhang at intel.com<mailto:helin.zhang at intel.com>> wrote:
Hi Deepak

Exception path or KNI just provide an exceptional path for packet exchanging between user space and kernel space. All packet IO are still in user space DPDK, Linux kernel still doesn’t know the NIC port. So, no standard Linux interrupt.

Regards,
Helin

From: Deepak Sehrawat [mailto:d.sehrawat at gmail.com<mailto:d.sehrawat at gmail.com>]
Sent: Wednesday, January 14, 2015 3:58 PM
To: Zhang, Helin
Cc: dev at dpdk.org<mailto:dev at dpdk.org>
Subject: Re: [dpdk-dev] Fast Path Query


Hi Helin,

If we use exception_path or KNI, which extracts packet from Linux kernel (for DPDK application processing), will it still remain fast path? Will it not impact the performance; as Linux interrupt framework shall also come into picture here?


On Wed, Jan 14, 2015 at 1:17 PM, Zhang, Helin <helin.zhang at intel.com<mailto:helin.zhang at intel.com>> wrote:
Hi Deepak

If a NIC port is controlled by DPDK, all packets received by that port will go directly to DPDK, and Linux kernel doesn't know those packets anymore.
But, the packets received by DPDK can be put into kernel by two special ways. They are exception_path and KNI. Please check the examples/ for more details.
In the future, a port may be co-controlled by both Linux and DPDK. Part of queues will be controlled by Linux kernel driver, part of queues will be controlled by DPDK. Check the DPDK roadmap for more details.

Regards,
Helin

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org<mailto:dev-bounces at dpdk.org>] On Behalf Of Deepak Sehrawat
> Sent: Wednesday, January 14, 2015 2:16 PM
> To: dev at dpdk.org<mailto:dev at dpdk.org>
> Subject: [dpdk-dev] Fast Path Query
>
> Hi All,
>
> I have a use-case where my slow path application (control path) is to run on
> Linux where as my data path is to run as DPDK application. Because both
> control and data packets are going to be received via same NIC card, how will
> these two flows be separated and passed on to Linux control app and DPDK
> data path app respectively? In short I want to understand how NIC received
> packets are separated between Linux Eth driver and PMD (poll mode
> driver) of DPDK?
>
> Thanks for the help in advance.
>
> Thanks,
> Deepak





More information about the dev mailing list