Freescale's VortiQa software is moving to user space. VortiQa is Freescale's network management software (Fig. 1) that runs on its QorIQ and QorIQ Converge platforms (see Multicore CPU/DSP Combo Targets LTE Basestations).
The initial version of VortiQa ran in kernel mode as a driver that provided access to hardware acceleration on the QorIQ platforms. This is typically how hardware is accessed but it has the disadvantage of moving between kernal and user mode as applications control the hardware. This is fine in most instances but often an application is moved to the kernel side to gain more performance. Unfortunately kernel mode is harder to develop for and it does not provide the system protection that running an application in user space does.
This latest incarnation of VortiQa PSP (Platform Services Package) runs in user space so it can coexist with the data plane application (Fig. 2). This means the application does not have to switch to kernel mode when using the VortiQa runtime. Freescale has also allowed the VortiQa runtime access to the hardware acceleration that is so important to it performance. The is a small overhead for running in user space but this is balanced with improved security and debugging.
VortiQa PSP provides a range of services (Fig. 3) including network and session management. The User space data plane acceleration architecture (USDPAA) takes only a 5% performance hit while gaining features such as the ability to have multiple instances and it can take advantage of Linux thread/core affinity.
In addition to improving the developer experience, the new approach has other benefits as well. Support and maintenance of an application is significantly easier and less error prone than kernel management. It also means support is independent of the underlying kernel. This makes migration to different platforms easier.
GPL copyright issues are also addressed by moving to user space since the application is now independent of the operating system from a legal standpoint. Kernel changes and driver integration is no longer an issue.
Overall, the trend to moving code away from the hardware continues especially as hardware improvements have reduced the overhead of doing so. I/O virtualization is already common at the hardware and virtual machine level for devices like Ethernet interfaces.