From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3368494382981489473==" MIME-Version: 1.0 From: Sasha Kotchubievsky Subject: [SPDK] Re: SPDK socket abstraction layer Date: Wed, 30 Oct 2019 19:50:05 +0200 Message-ID: <008901d58f4a$7792d100$66b87300$@dev.mellanox.co.il> In-Reply-To: 3FF20EF7F07495429158B858FACC0D7F4AC3A48E@IRSMSX103.ger.corp.intel.com List-ID: To: spdk@lists.01.org --===============3368494382981489473== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Tomek, Are you looking for community feedback regarding VPP implementation of TCP stack, or about having socket abstraction layer in SPDK? I think, socket abstraction layer is critical for future integration between SPDK and user-space stacks. In Mellanox, we're evaluating integration between VMA (https://github.com/Mellanox/libvma) and SPDK. Although, VMA can be used as replacement for Kernel implementation of Posix socket interface, we see great potential in "deep" integration, which definitely needs keep existing abstraction layer. For example, one of potential improvements can be zero-copy in RX (receive) flow. I don't see how that can be implemented on top of Linux Kernel stack. = Best regards Sasha -----Original Message----- From: Zawadzki, Tomasz = Sent: Monday, October 21, 2019 3:01 PM To: Storage Performance Development Kit Subject: [SPDK] SPDK socket abstraction layer Hello everyone, Summary: With this message I wanted to update SPDK community on state of VPP socket abstraction as of SPDK 19.07 release. At this time there does not seem to be a clear efficiency improvements with VPP. There is no further work planned on SPDK and VPP integration. Details: As some of you may remember, SPDK 18.04 release introduced support for alternative socket types. Along with that release, Vector Packet Processing (VPP) 18.01 was integrated with SPDK, by expanding socket abstraction to use VPP Communications Library (VCL). TCP/IP stack in VPP was in early stages back then and has seen improvements throughout the last year. To better use VPP capabilities, following fruitful collaboration with VPP team, in SPDK 19.07, this implementation was changed from VCL to VPP Session API from VPP 19.04.2. VPP socket abstraction has met some challenges due to inherent design of both projects, in particular related to running separate processes and memory copies. Seeing improvements from original implementation was encouraging, yet measuring against posix socket abstraction (taking into consideration entire system, i.e. both processes), results are comparable. In other words, at this time there does not seem to be a clear benefit of either socket abstraction from standpoint of CPU efficiency or IOPS. With this message I just wanted to update SPDK community on state of socket abstraction layers as of SPDK 19.07 release. Each SPDK release always brings improvements to the abstraction and its implementations, with exciting work on more efficient use of kernel TCP stack - changes in SPDK 19.10 and SPDK 20.01. However there is no active involvement at this point around VPP implementation of socket abstraction in SPDK. Contributions in this area are always welcome. In case you're interested in implementing further enhancements of VPP and SPDK integration feel free to reply, or to use one of the many SPDK community communications channels. Thanks, Tomek _______________________________________________ SPDK mailing list -- spdk(a)lists.01.org To unsubscribe send an email to spdk-leave(a)lists.01.org --===============3368494382981489473==--