In my setup, the root task implements multiple servers(memory allocator,
vspace manager, CPU allocator).
Each server is run in a separate thread. So, all the servers share the
address space.
Each server thread(which implements only one server) waits on only 1
endpoint.
Multiple clients have been handed a separate badged copies of this
endpoint during some previous handshake.
I wanted to keep 1 EP per service for 2 reasons:
* Future-proofing: At some point, I might move servers to separate
processes.
* To restrict clients. For instance, if I want a client to talk to
only the CPU server but not others, it has only the CPU server EP. I
realize that this can still be multiplexed with this EP on the
server side and the server type can be encoded in the badge too. So
this in itself is not a great reason.
Why did you decide for all these servers to share the same address space?
If your intent is for the servers to be independent and factorable into
separate processes, but you have two servers that need to know about the
internal state of each other, should they be merged into a single server?
- JB
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems