7. Converting sample database files (opimport)

This utility converts sample database files from a foreign binary format (abi) to the native format. This is useful only when moving sample files between systems for analysis on platforms other than the one used for collection. The oparchive should be used on the machine where the profile was taken (target) in order to collect sample files and all other necessary information. The archive directory that is the output from oparchive should be copied to the system where you wish to perform your performance analysis (host). If the When the architecture of your target and host systems differ, then you'll need to use the opimport command. The abi format of the sample files to be imported is described in a text file located in $SESSION_DIR/abi.

The following command converts an input sample file to the specified output sample file using the given abi file as a binary description of the input file and the curent platform abi as a binary description of the output file. (NOTE: The ellipses are used to make the example more compact and cannot be used in an actual command line.)

# opimport -a /tmp/foreign-abi -o /tmp/imported/.../GLOBAL_POWER_EVENTS.200000.1.all.all.all /tmp/archived/var/lib/.../mprime/GLOBAL_POWER_EVENTS.200000.1.all.all.all

Since opimport converts just one file at a time, an example shell script is provided below that will perform an import/conversion of all sample files in a samples directory collected from the target system.

#!/bin/bash
Usage: my-import.sh <input-abi-pathname>

# NOTE: Start from the "samples" directory containing the "current" directory
# to be imported

mkdir current-imported
cd current-imported; (cd ../current; find . -type d ! -name .) |xargs mkdir
cd ../current; mv stats ../StatsSave; find . -type f | while read line; do opimport  -a $1 -o ../current-imported/$line $line; done; mv ../StatsSave stats;

Example usage: Assume that on the target system, a profile was collected using a session-dir of /var/lib/oprofile, and then oparchive -o profile1 was run. Then the profile1 directory is copied to the host system for analysis. To import the sample data in profile1, you would perform the following steps:

$cd profile1/var/lib/oprofile/samples
$my-import.sh `pwd`/../abi

7.1. Usage of opimport

--help / -? / --usage

Show help message.

--abi / -a [filename]

Input abi file description location.

--force / -f

Force conversion even if the input and output abi are identical.

--output / -o [filename]

Specify the output filename. If the output file already exists, the file is not overwritten but data are accumulated in. Sample filename are informative for post profile tools and must be kept identical, in other word the pathname from the first path component containing a '{' must be kept as it in the output filename.

--verbose / -V

Give verbose debugging output.

--version / -v

Show version.