README
================================================================================
README for PQoS Utility Configuration files

July 2016
================================================================================

Contents
========
- 1 Overview
- 2 General Settings
- 3 Allocation Settings
- 4 Monitoring Settings


================================================================================
1.0             Overview
================================================================================

Configuration files are used to set up the PQoS utility with pre-defined
settings for custom use cases. The "./pqos -f" option is used to
specify a config file to be parsed by the utility on startup.

        - E.g. "./pqos -f path/to/config/example.cfg"

Found below are a list of settings that can be used to pass options to
the utility.


================================================================================
2.0             General Settings
================================================================================

Description:    Selects showing current allocation settings
Syntax:         show-alloc: <no args required>
Example:
                show-alloc:


Description:    Selects verbose mode on
Syntax:         verbose-mode: <no args required>
Example:
                verbose-mode:


Description:    Selects log file
Syntax:         log-file: <log file>
Exmaple:
                log-file: /tmp/example.log


Description:    Selects event monitoring time
Syntax:         monitor-time: <time in seconds>
Example:
                monitor-time: 4
                monitor-time: inf


Description:    Selects monitoring interval (1 = 100ms)
Syntax:         monitor-interval: <interval in 100ms>
Example:
                monitor-interval: 10


Description:    Selects event monitoring output file
Syntax:         monitor-file: <file name>
Example:
                monitor-file: /tmp/example.xml


Description:    Selects type of event monitoring output file
Syntax:         monitor-file-type: <file type>
Example:
                monitor-file-type: xml
		

================================================================================
3.0             Allocation Settings
================================================================================

Currently supported allocation type(s):

- Last Level Cache (llc)


3.1 LLC Allocation
==================

Description:    Resets allocation technologies (L2/L3 CAT) and
                optionally reconfigures L3 CDP.
Syntax:         reset-cat: [l3cdp-on|l3cdp-off|l3cdp-any]
Example:        reset-cat: l3cdp-on

Description:    Sets allocation class(es) of service
                For CDP, 'c' or 'd' letters can be used after class id to
                identify if definition applies to code or data mask
Syntax:         alloc-class-set: <alloc type>:<class id>[cdCD]= \
                                 <class definition>;
Example:
                (CDP - 20LLC ways)
                alloc-class-set: llc:0d=0xfff;llc:0c=0xfff00; \
                                 llc:1=0x0fff;llc:2=0x0ff;llc:3=0x00f;
                (Non CDP - 20LLC ways)
                alloc-class-set: llc:0=0xfffff;llc:1=0x00fff; \
                                 llc:2=0x000ff;llc:3=0x0000f;


Description:    Sets association between core(s) and allocation class(es)
                of service
Syntax:         alloc-assoc-set: <alloc type>:<class id>=<list of cores>
Example:
                alloc-assoc-set: llc:0=0-2
                alloc-assoc-set: llc:1=3
                alloc-assoc-set: llc:2=4
                alloc-assoc-set: llc:3=5


Description:    Defines allocation class(es) of service from profile
Syntax:         alloc-class-select: <profile name>
Example:
                alloc-class-select: CFG0


================================================================================
4.0             Monitoring Settings
================================================================================

Currently supported event type(s):

- Last Level Cache Occupancy (llc)
- Local Memory Bandwidth (mbl)
- Remote Memory Bandwidth (mbr)


Description:    Selects core(s) and events to be monitored
Syntax:         monitor-cores: <event type>:<list of cores>
Example:
                monitor-cores: mbl:0-5


Description:    Selects PID/TID(s) and events to be monitored
Syntax:         monitor-pids: <event type>:<list of pids>
Example:
                monitor-pids: llc:1,22,3075