modinfo.json
modinfo.json file is a configuration file that is used by tsgenmodsrc for generating source code of modules.
This document uses same JSON schema that is used in experiment.json.
modinfo.json
{ (in) "name": [string] Name of module, (in, opt) "type": ["load"] Type of the module, currently only "load" supported, (in) "wltypes": [node] { (in) "Workload type name #1": [node] Workload type, ... }, (in) "vars": [node] { (in) "Variable name #1": [string] Value, ... } }
Workload type
{ (in) "class": [ (in) ["cpu_integer" | "cpu_float" | "cpu_memory" | "cpu_misc" | "mem_allocation" | "fs_op" | "fs_rw" | "disk_rw" | "network" | "os"] Classes that this workload implements ... ], (in, opt) "has_step": [boolean] Set to true if you want step function to be generated, (in, opt) "has_data": [boolean] Set to true if you want data structure to be generated, (in) "params": [node] { (in) "Name of parameter #1": [node] Parameter, ... }, (in) "vars": [node] { (in) "Variable name #1": [string] Value, ... } }
Parameters
{ (in) "_type": [string] Data type of a parameter, (in, opt) "request": [boolean] Parameter is per-request, (in, opt) "output": [boolean] Parameter is output, (in, opt) "optional": [boolean] Parameter is optional, (in, opt) "default": [ANY] Default value of a parameter (not supported by CPU objects and disks), (in, opt, min is set) "min": [ANY] Minimum acceptable value (in, opt, max is set) "max": [ANY] Maximum acceptable value (only for floats, integers and integer-based types), (in, opt) "len": [number] Maximum length of string, (in) "strset" : [array] [ Value # 1... ] }
_type
field contains pseudo-class name of a corresponding parameter. Here are a table of mappings of this field values to wlp_type_t
constants (as described in Key concepts: workloads)
wlp_type_t | _type value |
WLP_BOOL | tsload.wlparam.WLParamBoolean |
WLP_INTEGER | tsload.wlparam.WLParamInteger |
WLP_FLOAT | tsload.wlparam.WLParamFloat |
WLP_RAW_STRING | tsload.wlparam.WLParamString |
WLP_STRING_SET | tsload.wlparam.WLParamStringSet |
WLP_SIZE | tsload.wlparam.WLParamSize |
WLP_TIME | tsload.wlparam.WLParamTime |
WLP_FILE_PATH | tsload.wlparam.WLParamFilePath |
WLP_CPU_OBJECT | tsload.wlparam.WLParamCPUObject |
WLP_DISK | tsload.wlparam.WLParamDisk |
Note: this format is conformant with data returned by
tsexperiment wls -j
command with one exception: how flags are represented.