5.5.1 Using Fastline

Setting up Fastline involves the following steps.

Prerequisites

  • An ARMv7 or ARMv8 model.
  • The FastlineTrace.so or FastlineTrace.dll plug-in.
  • Python 2.6 or later. This is needed to run the extract-offsets.py or process-elf.py scripts.
  • The fromelf executable. This is available in an Arm® Compiler or Arm Development Studio installation. fromelf is used by the extract-offsets.py and process-elf.py scripts. The PATH variable must include the path to fromelf. These scripts have been tested with fromelf version 6.3 and later.
  • Extra prerequisites for Linux applications:
    • The System.map file for the Linux kernel.
    • A Linux kernel image and a vmlinux file that was built with the CONFIG_DEBUG_INFO kernel option enabled.

Procedure

  1. This step applies to Linux only. Run extract-offsets.py using the syntax:

    extract-offsets.py path/vmlinux_file {1|0}

    Specify 1 for 64-bit Linux or 0 for 32-bit Linux.

    Example:

    For example:

    ./extract-offsets.py vmlinux.o 1

    Note:

    You might need to change the access permissions for the current directory because the script creates a temporary file there.
    Results: The parameter that the script outputs might look like the following example. You will need to specify this parameter in the cluster configuration file:
    "linux-offsets-64":"16,0,1160,18446744073709551615,1048,1224,1228,1648,16,760,16,8,0,32,24,8,0,8,160,152,32,16,8,0,8,16"
  2. This step applies to bare-metal applications only. Run process-elf.py to generate a csv file that you will need to specify in the cluster configuration file. Use the syntax:
    process-elf.py elf_file
    Example:

    For example:

    ./process-elf.py __image.axf
  3. Create a cluster configuration file for each cluster that you want to profile. This is a JSON file that provides the Fastline plug-in with information about the bare-metal application or Linux kernel that is running on the cluster, and parameters to configure Fastline. The fields that you need to include in the file depend on whether you are targeting Linux or bare-metal. See $PVLIB_HOME/plugins/config/FastlineTrace/ for the following cluster configuration file examples:
    v8a_cluster_config_sample.json
    is a Linux example.
    v7m_cluster_config_sample.json
    is a bare-metal example.
  4. Create a system configuration file. This is a JSON file that maps cluster configuration files to clusters. See $PVLIB_HOME/plugins/config/FastlineTrace/system_config_sample.json for an example.
  5. Optionally, create a counter configuration file. This is a JSON file that defines the parameters for the capture and maps MTI trace sources to Streamline counters. If you omit this parameter, the capture contains an instruction count only. See $PVLIB_HOME/plugins/config/FastlineTrace/sample_counters.json for an example.
  6. Run the model, specifying the following parameters:
    • The Fastline plug-in library. Use the --plugin <path_to_plugin>/<plugin_name>.so parameter.

    • The system configuration file. Use the config parameter, for example:

      -C TRACE.FastlineTrace.config=config/system_config_sample.json
    • Optionally, the counter configuration file. Use the counters-config-file parameter, for example:

      -C TRACE.FastlineTrace.counters-config-file=config/sample_counters.json
    • Optionally, the filename and output directory for the capture file that Fastline generates. Use the output-directory and apc-capture parameters, for example:

      -C TRACE.FastlineTrace.output-directory=/output_directory \
      -C TRACE.FastlineTrace.apc-capture=test_run
    • The model parameters.

    Example:

    For example:

    ./SVP_Base_Cortex-A73x1 --plugin FastlineTrace.so \
    …
    -C TRACE.FastlineTrace.config=config/system_config_sample.json \
    -C TRACE.FastlineTrace.counters-config-file=config/sample_counters.json \ 
    -C TRACE.FastlineTrace.output-directory=/output_directory \
    -C TRACE.FastlineTrace.apc-capture=test_run
    Results: This command generates a capture in /output_directory/, called test_run.apc, which you can import into Streamline for analysis.
  7. Add the directory containing the capture to Streamline using the Streamline Analysis Data Locations dialog.
  8. Double-click on the imported capture in the Streamline Data view to open the Analyze dialog. Select the ELF images for Streamline to analyze.
    Results: Streamline analyzes the capture and displays the analysis report in the Timeline view.
Non-ConfidentialPDF file icon PDF version100964_1161_00_en
Copyright © 2014–2019 Arm Limited or its affiliates. All rights reserved.