Developer Guide

  • 2021.2
  • 06/11/2021
  • Public
Contents

Host-Target Reference Implementation

Before using the data streams optimizer and cache allocation tools on the same system, see the instructions in Compatibility between DSO and Cache Allocation to avoid possible technical and performance issues.
The host-target reference implementation demonstrates the workflows described in Developer Workflow Overview. The host system is a development machine. The target system is the machine being tuned.

Preproduction Phase

The preproduction steps are divided between the host and target, as shown in the following diagram.
Steps:
  1. You will confirm that the Data Streams Optimizer Setting is enabled.
  2. You will do your work on the host system. The reference implementation includes samples of the input files:
    requirements file
    ,
    workload validation script
    , and
    environment file
    . You will need to update the environment file with credential information (
    hostname
    ,
    username
    ,
    password
    ) for the target system you would like to tune. For more information about the environment file, see Create an Environment File.
    If you plan to use software SRAM together with the data streams optimizer, ensure that the
    SoftwareSRAM
    compatibility option is enabled in the requirements file before using the data streams optimizer.
    The tool uses scripts that automate various aspects of the tool flow. The scripts support the target environments described in Default Setup, but you can customize them for other OSes or firmware. For more information about customizing these scripts, including examples of scripts for Windows OS*, see Custom OS/Firmware Support for DSO.
  3. On the host system, run the data streams optimizer with the input files. The rest of the workflow is automated by the tool. At each step, the tool will display status messages on the console.
  4. On the host system, the tool finds a tuning configuration.
  5. The tool wraps the tuning configuration in a
    capsule
    . A capsule is a binary used to change a system’s tuning configuration by updating certain areas of the firmware, known as “subregions.” The tool uses software called
    subregion capsule tool
    to create the capsule.
  6. The tool connects to the target system via SSH.
  7. The tool moves the capsule to the target system.
  8. On the target system, the tool applies the capsule using software called
    fwupdate
    .
  9. The tool reboots the target system. The tuning configuration is applied to the target system.
  10. The tool runs your workload validation script. The script tests whether the workload executed successfully having met the requirements specified, and accordingly returns success or failure.
  11. If the script returns failure, the tool selects another configuration. The tool repeats the configuration and validation process until the requirements are met or the tool is unable to identify any other configurations.
  12. If the requirements are met, the tool generates a
    tuning configuration file
    on the host system. The file specifies the selected tuning configuration. You will use the file to tune your production environment.
To accomplish this flow, the host and target use certain components.
The host uses the following components:
  • Requirements file and environment file
  • Data streams optimizer
  • Subregion capsule tool
The target uses the following components:
  • Workload validation script
  • fwupdate tool
  • Yocto Project-based OS
  • Reference BIOS
The host and target are connected via SSH.

Production Phase

The production steps are divided between the host and target, as shown in the following diagram.
Steps:
  1. You will confirm that the Data Streams Optimizer Setting is enabled.
  2. You will do your work on the host system. First, acquire the
    tuning configuration file
    from the preproduction phase.
  3. You will run the data streams optimizer with the tuning configuration file as input. The rest of the workflow is automated by the tool. At each step, the tool will display status messages on the console.
  4. The tool creates a capsule based on the tuning configuration file. Unlike the preproduction phase, the tool does not need the subregion capsule tool software.
  5. The tool connects to the target system via SSH.
  6. The tool moves the capsule to the target system.
  7. On the target system, the tool applies the capsule.
  8. The tool reboots the target system. The tuning configuration is applied to the target system.
To accomplish this flow, the host and target use certain components.
The host uses the following components:
  • Tuning configuration file
  • Data streams optimizer
The target uses the following components:
  • fwupdate tool
  • Yocto Project-based OS
  • Reference BIOS
The host and target are connected via SSH.
Consider the following items to secure the connection between host and target:
  • Disable weak algorithms and cipher suites (any suites that use SHA1 or SHA224 or MD5, DES cipher variants, non-AES symmetric cipher variants) from the ssh_config
  • Choose adequate key sizes (minimum 3k for RSA keys, minimum 256 bits for AES keys)
  • Run up-to-date SSH server packages

Security

The Data Streams Optimizer subregion in the BIOS capsule must be signed to preserve the integrity of the subregion data. If the subregion data signers aren’t the subregion data producers, a trusted relationship between the signers and producers must be established to ensure that the subregion data doesn’t contain malware before signing in order to prevent any supply chain attacks.
In
preproduction
environments during your experiments with performance, you can use test keys created during Intel® TCC Tools installation or generated by yourself. Keys are used by the Capsule Create Script.
In
production
environments, you must use securely generated product keys as described in the white paper Intel® Time Coordinated Computing (Intel® TCC) Security for UEFI BIOS.

Next Steps

Try the reference implementation: Get Started with a Sample.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.