Cap Sharing Improvements
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- rust
- Domain
- operating-systems
Research direction
Start by reading the cap-sharing work from issue #406 and the existing MICROKIT_MAX_USER_CAPS and microkit_cspace_slot_to_cptr references. The issue needs to be narrowed to a decided improvement, with its migration or compatibility requirements defined and the resulting behavior verified before release.
Written by the indexing model from the issue text.
Description
Now that we have cap sharing with #406, some improvements that can be made:
- Experiment with removing the PD hierarchy feature entirely.
- Specifically, we need a replacement for setting up the fault endpoints, but this
does have a 1:1 mapping. (the cap_sharing is not good enough for this) - I would want the ability to automatically migrate users from hierarchy to cap sharing, i.e. run a program that converts system descriptor files.
- Specifically, we need a replacement for setting up the fault endpoints, but this
- Make the "user caps" (
MICROKIT_MAX_USER_CAPS=128) its own child cnode that is dynamically sized, there's no reason to limit this (see also: the untypeds PR).- This might end up with the
microkit_cspace_slot_to_cptrfunction needing to be reworked... - Important: decide on this before the release, to avoid unnecessary future breakage.
- This might end up with the
- Auto-allocation of slots? (edit: maybe not?)
- Permissions on caps
- Other cap types
Originally posted by @midnightveil in https://github.com/seL4/microkit/issues/406#issuecomment-4629492200
- Dominant language
- Rust
- Stars
- 201
- Forks
- 80
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 7
Contributor guide
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.
More from seL4/microkit
-
Difficulty 2/5 Half a day Newbie friendliness 72/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100