Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Embedded

Multi-core networking in Linux user space with zero overhead

Posted: 02 Jul 2012 ?? ?Print Version ?Bookmark and Share

Keywords:accelerators? application software? Partitioning?

It also needs to support inter-application communication, and provide multiple execution models for applications. A network software framework in user-space that leverages the advantages of Linux OS and overcomes its limitation for networking and embedded application is essential for next generation of networking and embedded applications.

VortiQa Platform Services Package
An example of such a framework is Freescale's VortiQa Platform Services Package (VortiQa PSP), which provides an infrastructure (figure 5) for direct access to SoC hardware from user-space, as well as well defined layers, methods and hooks that facilitate packet processing. It is a multicore, high performance, SoC-agnostic, direct hardware access user-space execution environment for networking applications.

Figure 5: VortiQa PSP is a software framework that delivers a user space programming framework for networking applications on Freescale QorIQ hardware platforms.

VortiQa PSP provides an infrastructure for direct access to QorIQ based hardware from user-space, along with well defined layers, methods and hooks that facilitate packet processing. As illustrated in the schematic, a VortiQa PSP instance is represented by a user-space process.

The process has direct access to hardware, through user-space memory mapping. Linux is used mainly to host the user-space VortiQa PSP application with threads that may be bound to cores. This implementation supports a zero-overhead Linux user-space execution with minimal scheduler intervention.

PSP layers and functions: A VortiQa PSP instance can be viewed as having multiple layers, with a VortiQa PSP core layer providing essential services. Central to the VortiQa PSP core is the VortiQa PSP execution engine, which can consist of multiple worker threads that may be affine to one or more cores of the SoC.

The execution engine orchestrates packet processing with load balancing, handling of events including communications with other entities of the system, and generally drives application code execution. It directly accesses hardware packet I/O interfaces, by polling or in combination with Linux mechanisms like UIO.

?First Page?Previous Page 1???2???3???4???5???6?Next Page?Last Page

Article Comments - Multi-core networking in Linux user ...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top