EXERCISE-SUT-START(1)

πŸ“¦ version 1.12.48, in fedora 43, fedora 44

πŸ‘‘ exercise-sut-start(1) β€” the manual page bestie, but make it make sense πŸ’–

okay so. sit down, grab a strawberry πŸ“, because we're talking about exercise-sut start, which lives in the exercise-sut manual. this is the part of the toolkit that actually runs your test tool or benchmark and collects the test data. main character energy, honestly. ✨


🌸 COMMAND β€” exercise-sut start 🌸

the whole vibe, in one line (this is the usage string, verbatim, do not come for me):

usage: exercise-sut start [-h] [-q] [-d] [-H HOSTNAME] [-U USERNAME] [-K
       PRIVKEY] [-T TIMEOUT] [--datapoints DATAPOINTS] [--reportid-prefix
       REPORTID_PREFIX] [--reportid-suffix REPORTID_SUFFIX] [--cpus CPUS]
       [--cstates CSTATES] [--pcstates PCSTATES] [--turbo TURBO] [--freqs
       FREQS] [--uncore-freqs UNCORE_FREQS] [--cpufreq-governor GOVERNOR]
       [--idle-governor GOVERNOR] [--aspm ASPM] [--c1-demotion C1_DEMOTION]
       [--c1-undemotion C1_UNDEMOTION] [--c1e-autopromote C1E_AUTOPROMOTE]
       [--cstate-prewake CSTATE_PREWAKE] [--epp EPP] [--epb EPB]
       [--state-reset] [--deploy] [--devids DEVIDS] [--stats STATS] [--command
       COMMAND] [--stop-on-failure] [--only-measured-cpu] [--toolpath TOOLPATH]
       [--cstates-config-strategy {measured-only,measured-and-poll,
       measured-and-shallower}] [--use-cstate-filters] [--toolopts TOOLOPTS]
       [--outdir OUTDIR] [--dry-run] [--list-monikers]

and what does it do, you ask? it runs a test tool or benchmark to collect test data. that's it. that's the whole job. 🫢


✨ OPTIONS β€” exercise-sut start ✨

every single one, no skipping, i promised.

  • -h β€” shows you this help message, then dips. bye bestie πŸ‘‹
  • -q β€” be quiet. shhh. the introvert flag. πŸ™ˆ
  • -d β€” print debugging information. everything, all at once, on purpose. πŸ’€
  • -H HOSTNAME, --host HOSTNAME β€” the name of the host where you want the command to actually run.
  • -U USERNAME, --username USERNAME β€” the user you log into the remote host as over SSH. default username is root.
  • -K PRIVKEY, --priv-key PRIVKEY β€” path to the private SSH key used to log into the remote host. if you don't give one, it gets auto-found from standard paths like ~/.ssh.
  • -T TIMEOUT, --timeout TIMEOUT β€” SSH connect timeout, in seconds. default is 8.
  • --datapoints DATAPOINTS, -c DATAPOINTS β€” only applies to the wult and ndl tools. how many datapoints to collect per measurement. default is 100000.
  • --reportid-prefix REPORTID_PREFIX β€” a string to prepend to the report ID.
  • --reportid-suffix REPORTID_SUFFIX β€” a string to append to the report ID.
  • --cpus CPUS β€” only applies to the wult and ndl tools. comma-separated list of CPU numbers to measure with.
  • --cstates CSTATES β€” comma-separated list of requestable C-states to measure with.
  • --pcstates PCSTATES β€” comma-separated list of package C-states to measure with.
  • --turbo TURBO β€” comma-separated list of turbo configurations to measure with. supported values are "on" and "off".
  • --freqs FREQS β€” comma-separated list of frequencies to measure with. for the deets, go look at the --min-freq and --max-freq options of the pepc pstates config command. there's a special value unl you can use to measure with unlocked frequency (minimum frequency gets set to the smallest supported value, and maximum frequency gets set to the highest supported value).
  • --uncore-freqs UNCORE_FREQS β€” comma-separated list of package uncore frequencies to measure with. more info lives in the --min-uncore-freq and --max-uncore-freq options of the pepc pstates config command. special value unl = unlocked frequency (minimum frequency set to the smallest supported value, maximum frequency set to the highest supported value).
  • --cpufreq-governor GOVERNOR β€” name of the CPU frequency governor to measure with.
  • --idle-governor GOVERNOR β€” name of the idle governor to measure with.
  • --aspm ASPM β€” comma-separated list of PCIe ASPM configurations to measure with. supported values are "on" and "off".
  • --c1-demotion C1_DEMOTION β€” comma-separated list of C1 demotion configurations to measure with. supported values are "on" and "off".
  • --c1-undemotion C1_UNDEMOTION β€” comma-separated list of C1 undemotion configurations to measure with. supported values are "on" and "off".
  • --c1e-autopromote C1E_AUTOPROMOTE β€” comma-separated list of C1E autopromote configurations to measure with. supported values are "on" and "off".
  • --cstate-prewake CSTATE_PREWAKE β€” comma-separated list of C-state prewake configurations to measure with. supported values are "on" and "off".
  • --epp EPP β€” comma-separated list of EPP configurations to measure with. see pepc pstates config --epp for more.
  • --epb EPB β€” comma-separated list of EPB configurations to measure with. see pepc pstates config --epb for more.
  • --state-reset β€” sets SUT settings back to default values before measurements kick off. the defaults are: online all CPUs, enable all C-states, disable C1 demotion, disable C1 undemotion, disable C1E autopromotion, disable C-state prewake, enable turbo, unlock CPU frequency, unlock uncore frequency, set EPP policy to balance_performance, set EPB policy to balance-performance.
  • --deploy β€” only applies to the wult and ndl tools. runs the deploy command before starting the measurements.
  • --devids DEVIDS β€” only applies to the wult and ndl tools. comma-separated list of device IDs to run the tools with.
  • --stats STATS β€” applies to the wult, ndl, and stats-collect tools. comma-separated list of statistics to collect.
  • --command COMMAND β€” only applies to the stats-collect tool. the command that stats-collect should run. the string "{REPORTID}" inside COMMAND gets replaced with the report ID, and the string "{CPU}" inside COMMAND gets replaced with the CPU number.
  • --stop-on-failure β€” stop if any of the steps fail, instead of continuing (this is the default).
  • --only-measured-cpu β€” when you're changing settings like CPU or uncore frequency, change them only for the measured CPU. some settings have a scope bigger than "CPU" β€” for example, C-states limit scope may be "package", and uncore frequency scope may be "die". in those cases, only the package/die that includes the measured CPU gets changed. by default, settings are applied to all CPUs, packages, dies. heads up though: this option does not exclude I/O dies β€” use --skip-io-dies for that.
  • --skip-io-dies β€” skip I/O dies when you're changing die-scope settings like uncore frequency. even though I/O dies don't have CPUs, by default they get configured the same way as compute dies.
  • --toolpath TOOLPATH β€” path to the tool to run. default is wult.
  • --cstate-config-strategy {measured-only,measured-and-poll,measured-and-shallower} β€” the C-state configuration strategy used for measuring the system. the default is measured-only.
  • --use-cstate-filters β€” applies to the wult and ndl tools. uses filters to exclude datapoints with zero residency of the measured C-state.
  • --toolopts TOOLOPTS β€” extra options to use when running the tool. the string "__reportid__" gets replaced with the generated report ID.
  • --outdir OUTDIR, -o OUTDIR β€” path to the directory where results get stored. default is <toolname-date-time>.
  • --dry-run β€” doesn't run any commands, just prints them. ✨vibes only, no consequences✨
  • --list-monikers β€” a moniker is basically a lil abbreviation for a setting. exercise-sut uses monikers to build directory names and report IDs for collected results. use this option to list the monikers tied to each setting (if there are any), then exit.
πŸ’… friendly reminder: --stop-on-failure is the default behaviour, and --only-measured-cpu will not save your I/O dies. read the fine print, bestie.

πŸŽ€ sign-off πŸŽ€

and that's the page! this one's dated 2024-03-08 β€” that's all the version/source info the footer had for us (it was literally just a pair of empty parens, iconic of it honestly () ()). go forth and measure, you absolute legend πŸ‘‘πŸ’– no cap, you ate.

πŸ“¦ where this page comes from