LINUX AND RTOS
BSP DEVELOPMENT

 

emutex embedded sw

 

We work with embedded systems OEMs to enable Linux distributions and board support packages to run on their newly developed hardware platforms. We enable Ubuntu, Debian and Yocto-built distros for Intel and ARM based solutions.

EMBEDDED SOFTWARE
DEVELOPMENT

 

emutex embedded cpu

 

We work with semiconductor and embedded systems OEMs to “bring-up” their new microprocessors and boards. We adopt, modify and develop operating system kernels and device drivers for Linux, RTOS and bare-metal solutions.

NETWORK PACKET
PROCESSING ACCELERATION

 

emutex dpdk service

 

We work with IT/telecom OEMs and service providers to maximise network traffic throughput rates and enable VNF in their Linux based enterprise servers. We integrate DPDK and virtualization technologies including Docker containers.


Enabling Embedded Sytems in a Networked World


Emutex Protime that helps engineers carefully assess the performance of critical execution paths of software.

 

Engineering high performance real-time applications requires that engineers carefully assess the performance of critical execution paths of software using performance profilers. In our experience there are many excellent profilers on the market, some free, some expensive. However, we find that many of these are overly complicated if simple CPU cycle measurements is all that is required.

Emutex Protime is a simple code profiling tool developed by Emutex that enables software engineers to accurately measure the CPU cycles consumed by code. The tool provides a library of code profiling functions that can be invoked manually at selected points in target code or hooked into target code using the instrumentation capability of good compilers, e.g. GNU Compiler Collection (GCC).

Protime's profiling functions are built around the use of the x86 opcode RDTSC (Read Time Stamp Counter) to measure CPU cycles consumed by instrumented blocks of code or individual functions as required. Protime records a number of RDTSC samples and reports the median number of cycles per measured block or function. This reduces outliers caused by external effects including cache misses, interrupts, context switches, etc. The result is an accurate representation of the typical number of CPU cycles consumed by a particular code block.

Protime produces simple text based reports showing CPU cycles (and hence time) consumed by code blocks, functions and function trees. The tool accounts for the effects of task switching on single core and across multiple cores. It tracks nested functions and excludes time spent in children when reporting function or block cycle counts. The Protime library can be included in both Linux kernel and user builds. In user mode, Protime reports results to a file and in kernel mode the results are available via the /proc file system.

 


Go To Top