oxidecomputer / oxidecomputer/propolis
device backends need a persistent identifier for use in debugging
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 270
- Forks
- 42
- Avg merge
- 4d 5h
- Merged PRs (30d)
- 6
Description
Picture if you will: three Crucible disks attached to a VM, firing DTrace probes that are being observed by an engineer. That engineer has, at present, no way to know which probe firings are related to which disk in the system.
We should like to have a away to distinguish different backends from one another, ideally based on something that will be persistent between two identically configured Propolis instances. Obviously a uint64_t of some kind would be the cheapest thing, but a short static string would be a close second; e.g., by using some rendering of the PCI slot/path in the emulated system.
I expect this would be something we would be handed by Propolis on whatever context object we get passed at backend instantiation time.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing device-backend instantiation and the context object Propolis passes to each backend. Compare the proposed uint64_t identifier with a rendered PCI slot or path, and verify that the chosen value remains stable across identically configured instances while distinguishing backends in DTrace probe output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100