SPDK 1.1 Memory Management

avatar July 12, 2016

SPDK 1.1 Memory ManagementUntitled-22

Intel® DPDK kernel bypass and line rate packet processing framework has its many advantages. On the same time, however, network application designers and programmers are facing a challenge of adapting to a new paradigm and infrastructure.

In order to help developer keeping their focus on their business logic and, while maximizing performance without compromising on stability, Silicom came with Smartsilc Performance Development Kit (SPDK), essentially a set of libraries above DPDK, to support exactly that.

One of the important features of SPDK is the memory management layer. This layer streamlines packet processing, and offers better overall stability.

SPDK 1.1 software package carries along the following clear advantages regarding memory management [1]:

Block level (Arrays of packets) work rather than packet level
Certain types of packet processing may benefit immensely by the mere fact that the ingress packets are grouped and brought for processing as block of packets. Tight loop of packet processing logic can easily be implemented at the application level, in order to process blocks of packet at a time, thus achieving better overall performance compared to a per-packet scheme. Configurable packet block size assist with performance fine tune.

Inter thread steering
When managing packet in block rings, as indeed done by SPDK, packet can be easily steered across processing entities (threads). Zero copy typed packet blocks makes it even faster and simpler.

[1] SPDK-UG-1.1.7 user’s guide