Skip to content

test canonical s390x runner - #1227

Draft
marcoieni wants to merge 2 commits into
mainfrom
test-canonical-s390x-runner
Draft

test canonical s390x runner#1227
marcoieni wants to merge 2 commits into
mainfrom
test-canonical-s390x-runner

Conversation

@marcoieni

@marcoieni marcoieni commented Jul 2, 2026

Copy link
Copy Markdown
Member

Ignore this PR for now.

@tgross35
tgross35 force-pushed the test-canonical-s390x-runner branch from fb7b7a2 to 19be4b4 Compare July 9, 2026 03:58
@tgross35

tgross35 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

(rebased to pick up 5ef80b3 and see where it's getting stuck)

Comment thread .github/workflows/main.yaml Outdated
# os: ["self-hosted", "linux", "riscv64"]
- target: riscv64gc-unknown-linux-gnu
os: ubuntu-24.04
- target: s390x-resolute-medium-rust

@tgross35 tgross35 Jul 9, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Oh - this needs to be the actual rust target

View changes since the review

@marcoieni
marcoieni force-pushed the test-canonical-s390x-runner branch from 19be4b4 to d3e02e9 Compare July 9, 2026 10:02
@marcoieni

Copy link
Copy Markdown
Member Author

the new runner might be slow due to the cache miss, I want to try to push a new commit to check how it behaves with the cache hit.

@tgross35

tgross35 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

It's building nextest from source since there's no binary for this arch, which is taking extra long too (though seems like the ubuntu-24.04-s390x image is reasonably fast?). If trying again with cache doesn't speed things up much, it might be worth an if: to disable on this runner at

- uses: taiki-e/install-action@7a79fe8c3a13344501c80d99cae481c1c9085912 # v2.81.10
with:
tool: nextest@0.9.131
.

(edit: install-action actually has fallback: none)

@marcoieni

Copy link
Copy Markdown
Member Author

we might ask Canonical if they can install cargo next test on the runner for us so that it is always available. Although we might not be able to pin the version 🤔

@tgross35

tgross35 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

I'm fine without an exact version as long as it's relatively recent, the pinning is mostly for Zizmor rather than needing specific features

@marcoieni

Copy link
Copy Markdown
Member Author

Actually if we want to control the version, we could cache it 👀

Btw, there wasn't a cache hit even in the second run because I think the cache is populated only from the main branch.

This Canonical runner seems slower than the IBM one because to run cargo install of cargo nextest, it takes almost four times more.
So I assume there's no reason to merge this PR, since the s390x architecture is already covered by the ibm runner, right?

See:
image
image

@tgross35

tgross35 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Actually if we want to control the version, we could cache it 👀

Just building once then putting it on ci-mirrors? That does sound nice 🤔. The nextest maintainers have been pretty open to adding arches if they get the CI resources, maybe we should ask if they'd apply to the IBM program.

Btw, there wasn't a cache hit even in the second run because I think the cache is populated only from the main branch.

I would have expected this to work, but the inner workings of GHA cache are a complete mystery to me 🙂

This Canonical runner seems slower than the IBM one because to run cargo install of cargo nextest, it takes almost four times more. So I assume there's no reason to merge this PR, since the s390x architecture is already covered by the ibm runner, right?

Up to you for what you're trying to get. If you wanted a persistent job to keep testing then we can figure out what to do with nextest, but the existing s390x job covers things well so it's also fine to close.

@marcoieni

Copy link
Copy Markdown
Member Author

Just building once then putting it on ci-mirrors? That does sound nice 🤔

I was thinking more of caching the artifacts in github actions cache. It's easier and requires less maintenance. Similar to how we cache cargo artifacts now.

The nextest maintainers have been pretty open to adding arches if they get the CI resources, maybe we should ask if they'd apply to the IBM program.

this is also an option!

@tgross35

tgross35 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

I thought rust-cache takes care of those since it should cache the bin dir (I think?), but it also looks like the other s390x job had to rebuild. Hmm

@marcoieni

Copy link
Copy Markdown
Member Author

I think the issue is the order of the steps, since the rust-cache action runs after the install action.

@ubiratansoares

Copy link
Copy Markdown
Contributor

Aside caching, I found an interesting data point from this workflow run : it seems the IBM Runners have a significantly bigger CPU compared with the Canonical resolute-medium ones : 8 cores (vs 4 cores), bigger CPU caches, etc. I got this information by expanding logs from this step in both jobs.

I'd not be surprised if the IBM runner has bigger numbers for other hardware parameters like RAM/Disk sizes, IO perf, etc. That could explain the difference between the two jobs executions, at least partially.

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.

3 participants