Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autoperf #358

Merged
merged 8 commits into from
Nov 7, 2023
Merged

Autoperf #358

merged 8 commits into from
Nov 7, 2023

Conversation

safl
Copy link
Member

@safl safl commented Oct 10, 2023

Items remaining

  • Add cijoe script patching SPDK to use xNVMe from local repository as defined in cijoe config (xnvme.repository.path)
  • Add a template for a "performance report"
    • Produce the report using a cijoe script
    • Add this to the GHA Workflow
  • And invocation of cijoe workflows bench-provision.yamland bench-run.yaml to GitHUB Workflow
    • Trigger on next
    • Trigger via workflow-dispatch
    • Trigger on PR with label bench
  • Fix up history / commit messages
  • Fix missing images

Note: the performance report is available in artifacts/perf_report/perf.pdf inside of the bench-results artifact.

@safl safl added this to the v0.7.2 milestone Oct 10, 2023
@safl safl added the enhancement New feature or request label Oct 10, 2023
@safl safl force-pushed the autoperf branch 7 times, most recently from 1c6db36 to db9d6a8 Compare October 10, 2023 19:53
@safl safl mentioned this pull request Oct 11, 2023
4 tasks
@safl safl force-pushed the autoperf branch 7 times, most recently from a33f0de to df9cef1 Compare October 19, 2023 20:49
@safl safl added the bench Run benchmarks label Oct 19, 2023
@safl safl force-pushed the autoperf branch 12 times, most recently from 9929979 to 85a0304 Compare October 21, 2023 05:08
@safl safl force-pushed the autoperf branch 7 times, most recently from 1c6848f to c859c87 Compare October 23, 2023 21:02
@safl safl marked this pull request as ready for review October 25, 2023 04:52
@safl safl force-pushed the autoperf branch 2 times, most recently from e9255c6 to 2c7b3a2 Compare October 25, 2023 10:06
Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Copy link
Contributor

@karlowich karlowich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general very good, however there are some things related to batching that should be reconsidered and redone.

cijoe/auxiliary/plot-legends.yaml Outdated Show resolved Hide resolved
cijoe/scripts/bdevperf.py Outdated Show resolved Hide resolved
cijoe/scripts/bdevperf.py Outdated Show resolved Hide resolved
cijoe/scripts/bdevperf.py Outdated Show resolved Hide resolved
cijoe/scripts/bdevperf.py Outdated Show resolved Hide resolved
cijoe/scripts/bench_reporter.py Outdated Show resolved Hide resolved
cijoe/scripts/xnvme_install.py Show resolved Hide resolved
cijoe/workflows/bench-report.yaml Outdated Show resolved Hide resolved
cijoe/workflows/bench.yaml Outdated Show resolved Hide resolved
cijoe/scripts/fio_build.py Show resolved Hide resolved
Copy link
Contributor

@karlowich karlowich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many things related to the documentation and performance report

cijoe/templates/perf_report/bench.jinja2.rst Outdated Show resolved Hide resolved
cijoe/templates/perf_report/bench.jinja2.rst Outdated Show resolved Hide resolved
cijoe/templates/perf_report/bench.jinja2.rst Outdated Show resolved Hide resolved
cijoe/templates/perf_report/bench.jinja2.rst Outdated Show resolved Hide resolved
cijoe/templates/perf_report/bench.jinja2.rst Outdated Show resolved Hide resolved
cijoe/templates/perf_report/cover.jinja2.tmpl Show resolved Hide resolved
docs/ci/bench/index.rst Outdated Show resolved Hide resolved
docs/ci/bench/index.rst Outdated Show resolved Hide resolved
docs/ci/bench/index.rst Outdated Show resolved Hide resolved
docs/tutorial/devs/index.rst Outdated Show resolved Hide resolved
safl and others added 2 commits November 7, 2023 09:07
Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Co-authored-by: Karl Bonde Torp <karlowich@gmail.com>
This is inherited from "cijoe-pkg-linux", and extended with options
utilized for interface efficiency evaluation, as done in the fio
repository at "t/one-core-peak.sh".

Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
safl and others added 4 commits November 7, 2023 09:42
* configs/bench-*.toml

  - These configurations are equivalent
  - They introduce a new section "duts", "duts" have the information
    needed to produce bdev-configs
  - The configurations specifically describe the machines utilized for
    automating the performance evaluation, this will be covered by
    documentation on the xNVMe CI environment

* scripts/spdk_bdev_confs_generator.py

  - Emits bdev-configurations on the target-system
  - It utilizes the list of [['duts']] aka "device-under-test"

* scripts/bdevperf.py

  - Wraps the execution of the SPDK benchmark tool bdevperf
  - Names output-files by a convention utilized by the
    'bench_plotter.py'

* scripts/bench_plotter.py

  - Produce plots from the output of 'bdevperf.py'
  - Auxiliary files 'auxiliary/plot-*.yaml', these define limits,
    legends on data-sets etc.

* scripts/bench_reporter.py

  - Produce a .pdf report using the graphs produced by bench_plotter.py
  - templates/perf_report
    - This is a report template
    - The files are specific to the tool rst2pdf

* {fio,liburing,spdk}_build.py

  - Scripts to build and install fio, liburing, and SPDK from source

Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Co-authored-by: Karl Bonde Torp <karlowich@gmail.com>

Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Currently, the 'runs-on' label just uses 'self-hosted', since we only
utilize a single "type" of self-hosted runner. However, with the
introduction of self-hosted runners for perf. eval, then they need to be
distinguishable. This is done by adding descriptive labels 'verify'.

Also, renaming the job from 'build-and-test' to 'verify'.

Thus, this change, to ensure that the jobs currently using self-hosted
runners, won't start using the perf-runners.

Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
This gives an overview of the xNVMe CI environment, that is the jobs
that it performs and the resoucres it utilizes to do so.

This documentation is not complete, however, it is vastly better than
having no documentation, which is what we came from.

The file named "xnvme-ci-overview.drawio.png" is a png-file with the
diagram embedded inside. This means, that you can view it as a png-file,
however you can also edit it draw.io / Diagrams.net

Co-authored-by: Karl Bonde Torp <karlowich@gmail.com>
Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
@safl
Copy link
Member Author

safl commented Nov 7, 2023

@karlowich Thanks for all of your feedback. Is there anything I have overlooked / not addressed?

@safl safl requested a review from karlowich November 7, 2023 09:36
Copy link
Contributor

@karlowich karlowich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a final pass and I only have a single comment - which might be irrelevant, in which case feel free to ignore it.
Otherwise everything is looking good.

cijoe/configs/bench-amd.toml Show resolved Hide resolved
@safl safl merged commit 6526ea5 into xnvme:next Nov 7, 2023
31 checks passed
@safl safl deleted the autoperf branch November 7, 2023 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bench Run benchmarks enhancement New feature or request
Development

Successfully merging this pull request may close these issues.

None yet

2 participants