Cap Sharing Improvements

Open
#520 1 comment 0 reactions 0 assignees View on GitHub

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

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.
  • 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_cptr function needing to be reworked...
    • Important: decide on this before the release, to avoid unnecessary future breakage.
  • 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

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.

More from seL4/microkit

All issues in seL4/microkit

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.