DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: Hobywan Kenoby <hobywank@hotmail.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Beyond DPDK 2.0
Date: Fri, 8 May 2015 09:31:34 -0400	[thread overview]
Message-ID: <20150508133134.GB9765@hmsreliant.think-freely.org> (raw)
In-Reply-To: <DUB131-W15C766C6F0FAE75C5F5E12C0DE0@phx.gbl>

On Fri, May 08, 2015 at 12:26:39PM +0200, Hobywan Kenoby wrote:
> 
> > Sounds like you want something like libc, but DPDK is a system like a user
> > space OS more then it is a collection of functions that are independent
> > like strlen, strcpy, memcpy, printf or ... Some parts of DPDK are
> > independent and can be used as you suggest, but the real performance
> > sections are tied together.
> > 
> > >> Regards,
> > >> ++Keith
> 
> This is indeed quite a statement. DPDK is not just a
> bunch of NIC drivers, but "a user space OS" (DPDK 1.0 had a baremetal
> boot: why did it disappeared?).
> 
>  
> 
> Why Linux or Windows do not integrate DPDK concepts to
> catch up performance wise? Is it something so deep like the "Big
> Kernel Lock" that took so many years to get rid of?
> 
Some optimizations are being looked at in the kernel (more deeply ingrained use
of accelerators/offloads like cam management/flow steering, checksum & encap
offloads, tx batching, etc)  Those are features which the kernel can
opportunistically take advantage of in a hardware agnostic fashion.

Some optimizations simply aren't worth the effort to take into a general purpose
OS that seeks to support multiple arches.  Many of the DPDK optimizations
utilize instruction families like AVX or SSE, which, while potentially useful in
some situations have equal potential to be catastrophic to non network-i/o bound
workloads. 
>  
> 
> My assumption is that all current kernels have been
> built with one implicit hypothesis: the memory is much faster than cpu. This is
Thats not entirely true.  Or more to the point, its not true in any way thats
relevant to a comparison between DPDK and the Linux network stack.  Linux is as
careful with its cache management as DPDK is (arguably more so, as it has to
juggle multiple workloads instead of the single purpose workload that DPDK is
designed for).  The difference is that Linux often has to ignore some
performance improvements because it has the additional responsibiilty of
providing secruity and isolation to multiple processes on multiple
architectures.

> the opposite today. DPDK internal structure has been adapted to the new
> paradigm where the TLBs, the memory bandwidth are the scarce resources to manage. So I
> guess Linux and Windows will not be able to integrate DPDK concepts for
> performance anytime soon, if ever...
> 
This is the case with every bit of software.  Memory bandwidth is always a
scarce resoruce to manage.  The difference is that general purpose operating
systems consider protection/layering/isolation to be of equal or greater
importance than performance.  Tradeoffs have to be made.  Linux in general
strives to isolate hardware from applications both functionally and physically
so as to ensure that there is minimal risk in one process adversely affecting
the other.  The tradeoff is that the Linux device model can't just do anything
it wants to improve performance.

Converserly, DPDK is all about performance.  Up until recently (and likely still
somewhat in the future), you have to rebuild your application every time you
move to a new version of DPDK, because the API fluctuated with every release to
eek out additional performance.  The DPDK can optimize using vectorized x86
instructions and other cpu specific features througout because it is in the
position to only worry about a very narrow field of architectures.

>  
> 
> Reading the list carefully, I expect disk block PMDs
> (and block framework?) to come next.
> 
>  
> 
> Beyond DPDK 2.0: is it time to accept the fact that
> DPDK community is actually paving the way to the next generation lightweight,
> high performance, para-virtualized OS? Is it a DPDK task? Another project ?
> Should we rename DPDK to PVDK?
> 
>  
> 
> - HK
> 
>   		 	   		  

  reply	other threads:[~2015-05-08 13:31 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-16 10:38 O'Driscoll, Tim
2015-04-22 15:11 ` O'Driscoll, Tim
2015-04-22 15:33   ` Stephen Hemminger
2015-04-23 11:36     ` O'Driscoll, Tim
2015-04-24 21:02       ` Dave Neary
2015-05-07 14:02   ` Avi Kivity
2015-05-07 14:34     ` Ivan Boule
2015-05-07 15:27     ` Wiles, Keith
2015-05-07 15:33       ` Avi Kivity
2015-05-07 15:33       ` Avi Kivity
2015-05-07 15:49         ` Wiles, Keith
2015-05-07 16:05           ` Avi Kivity
2015-05-08  4:16             ` Wiles, Keith
2015-05-08  5:29               ` Luke Gorrie
2015-05-08  9:06                 ` Bruce Richardson
2015-05-08  9:32                   ` Luke Gorrie
2015-05-08  9:42                     ` Bruce Richardson
2015-05-08 10:02                       ` Luke Gorrie
2015-05-08 14:44                 ` Wiles, Keith
2015-05-08 16:16                   ` Stephen Hemminger
2015-05-08 10:26               ` Hobywan Kenoby
2015-05-08 13:31                 ` Neil Horman [this message]
2015-05-08 16:22                   ` Stephen Hemminger
2015-05-07 15:34     ` Luke Gorrie
2015-05-08  4:31       ` Wiles, Keith
2015-04-24  7:47 ` Luke Gorrie
2015-04-24 15:29   ` O'Driscoll, Tim
2015-04-24 17:00     ` Neil Horman
2015-04-26  9:07       ` Luke Gorrie
2015-04-24 17:39   ` Jay Rolette
2015-04-24 17:51     ` Matthew Hall
2015-04-25 13:30       ` Marc Sune
2015-04-25 16:08         ` Wiles, Keith
2015-04-26 21:56           ` Neil Horman
2015-04-27  2:29             ` Jim Thompson
2015-04-27 13:07               ` Neil Horman
2015-04-27 16:07               ` Stephen Hemminger
2015-04-28  7:20               ` Dor Laor
     [not found]             ` <D162FA4E.1DED8%keith.wiles@intel.com>
2015-04-27  9:52               ` Marc Sune
2015-04-27 13:39                 ` Wiles, Keith
2015-04-27 15:34                   ` Marc Sune
2015-04-27 10:29               ` Neil Horman
2015-04-27 13:50                 ` Wiles, Keith
2015-04-27 15:23                   ` Neil Horman
2015-04-27 12:38             ` Dave Neary
2015-04-27 13:41               ` Neil Horman
2015-04-27 16:09               ` Stephen Hemminger
2015-04-24 18:12     ` Matt Laswell
2015-04-24 18:51       ` Neil Horman
2015-04-24 19:55         ` Jay Rolette
2015-04-25 12:10           ` Neil Horman
2015-04-27 13:46             ` Jay Rolette
2015-04-28 17:26               ` Neil Horman
2015-04-28 20:02                 ` Jay Rolette
2015-04-28  6:22             ` Matthew Hall
2015-04-28 17:48   ` Stephen Hemminger
2015-04-30 21:31 Wiles, Keith
2015-04-30 21:38 ` Wiles, Keith

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=20150508133134.GB9765@hmsreliant.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=dev@dpdk.org \
    --cc=hobywank@hotmail.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).