IPC BenchMarking

From Texas Instruments Wiki
Jump to: navigation, search

The page describes how to build and execute applications provided in IPC 3.x for the purposes of benchmarking. This topic currently covers benchmarking running Linux or Android on the main processor of the device.


The application utilizes the IPC 3.x stack to communicate from the main processor to the slave core via the MessageQ interface. The application measures the time taken to accomplish this.


This section outlines the build process for the MessageQBench application.


To build the application, follow the Linux IPC Install Guide to configure and build the Linux-side applications for your device. You'll also need to build the corresponding BIOS side of IPC as indicated in the guide.


The IPC development sources should be included in the Android Filesystem (AFS) indicated by the manifest provided in your AFS distribution. The sources are located in $(AFS_ROOT)/hardware/ti/ipc directory.

To build the IPC applications, follow the same procedure to build the entire AFS. If you want to specifically build the IPC content, you can issue the following command to build the needed IPC libraries and application from the top your AFS installation (must configure and pick the correct lunch target for your device).

$buildhost make -j messageQApp \
                     messageQBench \
                     messageQMulti \
                     nameServerApp \
                     ping_rpmsg \
                     lad_dra7xx \

To build the corresponding SysBios side of IPC follow the IPC Install Guide.


This section illustrates the steps to run the MessageQBench application.

The built IPC libraries and applications must be copied (installed) onto the devices filesystem. The LAD Daemon must be running and application's corresponding slave-side binary must be loaded via the remoteproc kernel module. The slave-side binary (messageq_single.x<suffix>), is located in the $(IPC_ROOT)/packages/ti/ipc/tests/bin/<device> directory.

Detailed information regarding this can be found in the Installing Tests and IPC Daemons and Drivers section of the IPC Install Guide.


Android users - The Android binaries (lad_dra7xx and messageQBench) will be located in the $(AFS_ROOT)/out/target/product/<device>/system/binary directory. There are also dependent libraries (libtiipc.so, libtiipcutils.so, and libtiipcutils_lad.so) in the $(AFS_ROOT)/out/target/product/<device>/system/lib directory. These files need to be copied to your device filesystem for execution.

Once the LAD daemon is running and the slave core binary has been loaded. You can execute the following to run the application:

target# /usr/bin/MessageQBench

The application will exchange 1000 messages with a payload of 8 by default with an average round trip time per message. The follow is the usage parameters for the application.

Usage: ./bin/MessageQBench [<numLoops>] [<payloadSize>] [<ProcId>]
       Defaults: numLoops: 1000; payloadSize: 8, ProcId: 1