oxidecomputer / oxidecomputer/omicron

Sled views could say more about CPUs

Open
#8,730 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

in https://github.com/oxidecomputer/omicron/pull/8725 I'd initially included sled CPU families in the external API but upon further consideration just saying "Turin" or "Turin Dense" may raise more questions than it answers when operators are trying to use a rack. In one sense, "Turin" vs "Turin Dense" is more precise than "Zen 5", but it doesn't provide any insight into CPU topology or frequency characteristics. Because the CPU family is so limited in answering "what is actually present" I've backed #8725 out from trying to provide that for the moment.

When it comes to listing hardware information back out from sleds, one might imagine several axes of information:

  • What is the actual CPU model number?
  • What is the CPU's actual frequency range?
  • What's the CPU topology like? How many cores to a CCD? SMT yes/no?
  • What is the CPU's uarch?
  • What are L1/L2/L3 cache sizes?
  • What features are available, and what VMs (i.e. instance CPU platforms) can run on this hardware?

... where the "CPU family" from #8725 really only gets at that last question. Not that this all must or even should be added all at once. Some of this is available from fmtopo, some is not (yet?), so this really is several issues in a trenchcoat.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing PR #8725 and the hardware information available from fmtopo. Narrow the broad list of CPU model, frequency, topology, cache, uarch, and feature questions into one concrete API scope; done means that selected axis has an agreed external representation rather than the discarded CPU-family-only approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.