Skip to content

Restricting the switcher's exception handling path's access to be only on the stack #589

@vmurali

Description

@vmurali

This is related to #560 and #559 . The following is based on the result of the formal specification work done by @stellamplau. I will link to the longer document in a bit.

If the switcher is restricted to access only the registers, trusted stack and rtos-stack, then threads can run concurrently (either in a multicore setting or with interrupts enabled), even if the thread is in the switcher code handling exceptions. This requires refactoring the switcher code as hinted in #559 . This issue gives the full set of changes to achieve this.

Sorry for the wall of text; I wanted to write down all the points that we have discussed so far before we forget them.

We should split this into separate issues and tackle each of them separately. Once these issues are fixed, we will have support for multicore implementations (except for the scheduler - that has to adjust the priority queue atomically) and for enabling interrupts at all points (except for handling asynchronous interrupts).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions