History log of /barrelfish-master/if/proc_mgmt.if
Revision Date Author Comments
# 9bd8d1d5 03-Apr-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

replacing umlaute and fixing address in headers Haldeneggsteig -> Universitaetsstrasse

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 7fccf211 09-Oct-2017 Roni Häcki <roni.haecki@inf.ethz.ch>

proc_mgmt: get status query implemented

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# f5700f6b 09-Oct-2017 Roni Häcki <roni.haecki@inf.ethz.ch>

proc_mgmt: getting domain list implemented

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 23d2c2be 09-Oct-2017 Roni Häcki <roni.haecki@inf.ethz.ch>

proc_mgmt: implementation spawn_wait() with nohang flag

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 0d2ea264 02-Oct-2017 Roni Häcki <roni.haecki@inf.ethz.ch>

proc_mgmt: bugfix for domains spawned from startd

- Apps specified in menu.lst are now spawned using the proc_mgmt
- client side of proc_mgmt allocates cap slot as it should be
- Changed exit message to RPC

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# bdce97c2 25-Aug-2017 Razvan Damachi <damachir@emmentaler2.ethz.ch>

Change 'exit' from RPC to message in if/proc_mgmt.if.

Having 'exit' as an RPC caused a bug where the client's capabilities were
revoked while it was waiting for a response to RPC exit, causing the UMP
driver to throw a cap_transfer error in the client's monitor.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 7ddb3bce 20-Aug-2017 Razvan Damachi <razvan.damachi@gmail.com>

Fix typo in if/proc_mgmt.if

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 1c3e8231 02-Jul-2017 Razvan Damachi <razvan.damachi@gmail.com>

Add per-spawnd message queues to the process manager.

The process manager will now enqueue requests to be sent to spawnds. There is
one queue per spawnd server that the process manager is connected to. The
change is meant so that if multiple clients send requests meant to be served
by the same spawnd (e.g. spawn multiple domains on the same core), the process
manager will not return an error if the target spawnd's Flounder queue is full,
but instead queue up the requests to be sent later.

In order to accommodate for this change, the spawn API exposed to the process
manager now features a specific reply for each request type. The proces
manager handles every reply type separately, meaning that every client can now
send up to 1 request of each type exposed by the proc_mgmt API, up from a max
of 1 request of any type at any given time.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# a697aaea 22-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Implement "wait" in the process manager + fix bug in kill reply handler.

On receiving a kill reply from some spawnd, the process manager will re-add the
pending client to the hash table if it expects to receive further such replies
for the same domain, i.e. if there are still spawnds running it.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 0478b6d2 21-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Implement kill() and exit() in the process manager.

On the server side, both calls are handled similarly: the process manager sends
a kill request to all spawnds running a dispatcher for the victim domain. On the
client side, they are different calls.

The general-purpose domain exit protocol now attempts to use the proc mgmt API
exit call (in lib/barrelfish/init.c). If this fails, the protocol will fall
back to exiting via a direct spawn_exit() call, like before. The use-case where
exiting via the process manager is expected to fail is when the domain was not
spawned through the process manager in the first place, such as is the case
with the special domains spawned by the monitor on the bootstrap core, as well
as the monitors themselves.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 93751d0a 20-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Add spawn, spawn_with_caps and span calls to the Process Manager API.

The process manager keeps local domain state and forwards valid requests to
spawnds, acting as a proxy for spawning & spanning. Requests are validated as
per the Span-Stop-Cleanup state machine at https://goo.gl/6JuJj2.

Spawnd has been enriched with several asynchronous API calls, in order for
the process manager to serve requests non-blockingly. Specifically, clients of
the process management service issue RPCs to the process manager server
(blockingly), but the latter forwards requests to spawnd asynchronously, hence
it is able to serve multiple clients at the same time.

The client code for spanning uses libbarrelfish/domain.h to create the new
dispatcher for the remote core.

Bug: if the first dispatcher exits main(), dispatchers spanned on other cores
will pagefault.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 0d01b285 09-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Refactor process manager to enable spawnd discovery.

The process manager now allocates a special LMP endpoint for monitor.0 and
gives said endpoint to monitor.0 as part of the export_cb. After monitor.0
spawns spawnd, it uses that endpoint to send the new spawnd's iref to the
process manager. The latter then binds with spawnd, to keep track of its state.

For app cores, a similar workflow applies, except inter-monitor communication
is now performed. Namely, the new app core's monitor sends the new app core's
spawnd to monitor.0, which forwards it to the process manager. The latter then
binds with the app core's spawnd just the same.

Diagrams for the discovery protocol can be found at https://goo.gl/eJE37u.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# df2c21c4 01-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

First outline of a process management service server.

Right now, the server only has an "alloc_ep" call which the monitor will be
able to use to request connection for spawnd (for all monitors, all spawnds).
The server is not yet run by the monitor, but that should happen somewhere
along the initialization steps on the BSP core.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>