Skip to content

util: Add DDR channel selection to manual perf [skip ci]#925

Merged
edwu186 merged 1 commit into
xs-devfrom
ideal-8ch
Jun 29, 2026
Merged

util: Add DDR channel selection to manual perf [skip ci]#925
edwu186 merged 1 commit into
xs-devfrom
ideal-8ch

Conversation

@edwu186

@edwu186 edwu186 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Add a manual perf workflow input for selecting the DRAMSim3 DDR configuration. The manual workflow now exposes 2ch and 8ch choices, with 2ch as the default, and includes the selected DDR config in the workflow run name.

Change-Id: I0f62d752730ab9678e7ab341f27e66da21c87a67

Summary by CodeRabbit

  • New Features

    • Added a DDR configuration option for performance runs, with support for selecting between 2-channel and 8-channel setups.
    • Run names now include the selected DDR configuration for easier identification.
  • Behavior Changes

    • Performance jobs now automatically apply the matching DRAMSim3 configuration based on the selected DDR option.
    • Run metadata now records the chosen DDR configuration.
    • Manual runs now pass the DDR setting directly into the shared performance workflow.

Add a manual perf workflow input for selecting the DRAMSim3 DDR
configuration. The manual workflow now exposes 2ch and 8ch choices,
with 2ch as the default, and includes the selected DDR config in the
workflow run name.

Change-Id: I0f62d752730ab9678e7ab341f27e66da21c87a67
@edwu186 edwu186 requested a review from jensen-yan June 29, 2026 05:38
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a ddr_config input (2ch/8ch, default 2ch) to manual-perf.yml and gem5-perf-template.yml. The template resolves this value to a --dramsim3-ini path, normalizes extra_args, records ddr_config in metadata.txt, and passes the resolved args to parallel_sim.sh. The caller removes its previous extra_args forwarding.

Changes

DDR Config Input and DRAMSim3 Argument Resolution

Layer / File(s) Summary
manual-perf.yml: input declaration and caller wiring
.github/workflows/manual-perf.yml
Adds ddr_config choice input (2ch/8ch) to workflow_dispatch, appends it to run-name, removes extra_args from the parameter-resolution output, and forwards ddr_config (not extra_args) to the template.
gem5-perf-template.yml: input definition, metadata, and DRAMSim3 arg resolution
.github/workflows/gem5-perf-template.yml
Declares ddr_config string input (default "2ch"), writes it to metadata.txt, and resolves the matching --dramsim3-ini path before normalizing whitespace and passing $extra_args to parallel_sim.sh.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • OpenXiangShan/GEM5#610: Previously added extra_args support to parallel_sim.sh and gem5-perf-template.yml, which is the parameter this PR replaces with DRAMSim3 ini resolution.
  • OpenXiangShan/GEM5#799: Also modifies manual-perf.yml's run-name format and adds a workflow dispatch input, overlapping at the same definition site.

Suggested labels

perf

Suggested reviewers

  • jensen-yan

Poem

🐇 Two channels or eight, the rabbit must choose,
A dramsim3 ini — no time to lose!
The ddr_config hops into the flow,
Metadata records wherever it goes.
Extra args tidied, whitespace swept clean,
The neatest sim runner the warren has seen! 🌟

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly matches the main change: adding DDR channel selection to the manual performance workflow.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ideal-8ch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 86fc6a4f-d88d-4689-b3fa-ef93e1bf56dc

📥 Commits

Reviewing files that changed from the base of the PR and between 3674c78 and 544935f.

📒 Files selected for processing (2)
  • .github/workflows/gem5-perf-template.yml
  • .github/workflows/manual-perf.yml

Comment thread .github/workflows/gem5-perf-template.yml
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.3162 -
This PR 2.3162 ➡️ 0.0000 (0.00%)

✅ Difftest smoke test passed!

@edwu186 edwu186 changed the title util: Add DDR channel selection to manual perf util: Add DDR channel selection to manual perf [skip ci] Jun 29, 2026
@edwu186 edwu186 merged commit 5e2c2b0 into xs-dev Jun 29, 2026
2 checks passed
@edwu186 edwu186 deleted the ideal-8ch branch June 29, 2026 06:11
This was referenced Jun 29, 2026
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