From: Stephen Hemminger <stephen@networkplumber.org>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Beyond DPDK 2.0
Date: Fri, 8 May 2015 09:22:47 -0700 [thread overview]
Message-ID: <20150508092247.233ffa08@urahara> (raw)
In-Reply-To: <20150508133134.GB9765@hmsreliant.think-freely.org>
On Fri, 8 May 2015 09:31:34 -0400
Neil Horman <nhorman@tuxdriver.com> wrote:
> 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?
The difference is DPDK doesn't care about being general purpose:
- scheduler, that is the applications problem
- locking, the application must be bound to cpus or do its own locking
- buffer management, up to the application.
- memory protection (haha)
Any operating system provides an abstraction that makes programming easier.
If you strip away those abstractions, then sure things go faster but it is
less safe and harder.
Linux is about providing safe abstraction. If you want an OS that doesn't
do that, look to Cloudius or the other DIY environments like DPDK.
This is not a new concept. Oracle and other DBMS vendors have been asking
for the OS to get out of the way for years, but then customers find that
things like filesystems are convenient necessities.
next prev parent reply other threads:[~2015-05-08 16:23 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
2015-05-08 16:22 ` Stephen Hemminger [this message]
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=20150508092247.233ffa08@urahara \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=nhorman@tuxdriver.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).