Skip to content

feat(spec2017): add runspec-based SPEC2017 workload flow#10

Merged
poemonsense merged 1 commit into
mainfrom
feat-spec2017
May 9, 2026
Merged

feat(spec2017): add runspec-based SPEC2017 workload flow#10
poemonsense merged 1 commit into
mainfrom
feat-spec2017

Conversation

@poemonsense
Copy link
Copy Markdown
Member

Add a SPEC2017 workload integration under workloads/linux/spec2017 that builds rate and speed benchmarks from an external SPEC tree with runcpu, stages the selected inputs into the Linux workload rootfs, and exports firmware, ELF, and kernel artifacts under the build and image directories.

The new helper scripts keep SPEC build output inside this repository, add prepare and ELF-only make targets, provide a RISC-V GCC config, and support per-case DTB memory profiles for SPEC2017 images.

@poemonsense poemonsense force-pushed the feat-spec2017 branch 4 times, most recently from 429d7b2 to a2f127b Compare May 9, 2026 05:41
@poemonsense poemonsense requested a review from Copilot May 9, 2026 05:42
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new SPEC CPU2017 Linux workload flow under workloads/linux/spec2017, integrating runcpu-based builds from a prepared SPEC workspace, packaging runnable rootfs images, exporting ELFs, and supporting per-case DTB memory profiles during firmware assembly.

Changes:

  • Introduce SPEC2017 packaging/build helper (spec2017-package.py) plus wrapper scripts (build.sh, prepare-spec-workspace.sh) and documentation.
  • Add Makefile rules to build single cases, ELF-only outputs, and multi-variant exported images (rate/speed, input sets).
  • Extend firmware assembly to support DTB memory profiles and enforce minimum DTS-declared memory, plus add SPEC2017-oriented DTS templates.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
workloads/linux/spec2017/spec2017-package.py Implements SPEC2017 case selection, runcpu build caching, run directory packaging, and run script generation.
workloads/linux/spec2017/rules.mk Adds Make targets for preparing SPEC workspace, building cases/ELFs, and exporting per-run images with DTB profiles.
workloads/linux/spec2017/riscv-gcc15.cfg Provides a RISC-V GCC-based SPEC CPU2017 config used by the workflow.
workloads/linux/spec2017/README.md Documents usage, case naming, image export layout, profiling toggles, and DTB profile behavior.
workloads/linux/spec2017/prepare-spec-workspace.sh Extracts/installs SPEC2017 ISO into a writable prepared workspace and records provenance metadata.
workloads/linux/spec2017/build.sh Wrapper to invoke spec2017-package.py with environment-provided build parameters.
scripts/build-firmware-linux.sh Adds DTB memory profile selection and optional minimum-memory enforcement based on generated DTS content.
dts/xiangshan-fpga-noAIA-mem8g.dts.in Adds an 8 GiB DTS template for large initramfs workloads/SPEC rate defaults.
dts/xiangshan-fpga-noAIA-mem24g.dts.in Adds a 24 GiB DTS template for SPEC speed defaults.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread workloads/linux/spec2017/rules.mk Outdated
Comment thread workloads/linux/spec2017/spec2017-package.py Outdated
Comment thread workloads/linux/spec2017/spec2017-package.py
Comment thread workloads/linux/spec2017/spec2017-package.py Outdated
Comment thread scripts/build-firmware-linux.sh
Add a SPEC2017 workload integration under workloads/linux/spec2017
that builds rate and speed benchmarks from an external SPEC tree with
runcpu, stages selected inputs into Linux workload images, and exports
firmware, ELF, kernel, and run-script artifacts under the build and
image directories.

The helper scripts keep SPEC build output inside this repository,
add prepare and ELF-only make targets, split multi-command runs into
separate exported images, provide mode-specific RISC-V GCC configs,
and support PROFILING-controlled NEMU traps plus per-case DTB memory
profiles.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Comment thread workloads/linux/spec2017/build.sh
Comment thread workloads/linux/spec2017/rules.mk
Comment thread workloads/linux/spec2017/spec2017-package.py
@poemonsense poemonsense merged commit 3b6c6a6 into main May 9, 2026
5 of 6 checks passed
@poemonsense poemonsense deleted the feat-spec2017 branch May 9, 2026 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants