Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

X-FILES Integration with the Linux kernel #3

Open
seldridge opened this issue Feb 21, 2016 · 0 comments
Open

X-FILES Integration with the Linux kernel #3

seldridge opened this issue Feb 21, 2016 · 0 comments

Comments

@seldridge
Copy link
Collaborator

The patched proxy kernel with additional system calls to deal with setup and manual, user process management of the ASID--NNID Table is a crutch that needs to be remove at some point.

This issue roughly covers full integration of the X-Files supervisor libraries with the Linux kernel to enable the transparent use of X-Files/Dana by user processes without having to use system calls to get the OS to setup the ASID--NNID Table. All this should happen transparently, likely with a trap-based model.

Roughly, this whole thing should work as follows (similar to my understanding of how the floating point unit is managed):

By default, the kernel sets up a small ASID--NNID Table. On first access by a user process to the X-Files arbiter, the kernel traps and deals with setup of the X-Files arbiter, i.e., the kernel sets the ASID and ASID--NNID Table pointer (though this latter bit could be setup earlier). The kernel then deals with setting the appropriate traps or automatically changing the ASID across context switches of user processes. This may require some modifications to whatever structures that the kernel uses to manage the list of all processes (e.g., child processes should, I expected, have the same ASID as their parents).

seldridge added a commit that referenced this issue May 11, 2016
This adds a per-core Debug Unit inside the X-FILES Arbiter. This is
intended to facilitate testing of the Linux kernel migration (#3) by
allowing for explicit reads/writes of addresses to verify that we have
the virtual/physical model correct.

This unit can currently only be used as a register request/response
unit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant