Add per-spawnd message queues to the process manager.
authorRazvan Damachi <razvan.damachi@gmail.com>
Sun, 2 Jul 2017 14:25:53 +0000 (16:25 +0200)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Thu, 31 Aug 2017 14:35:08 +0000 (16:35 +0200)
commit1c3e8231d91b036121ee3dd81e3efa50edc96434
tree5361d8c05a310295de6e1128479a0e703eb025d1
parent11268e99bb0c6fc4e2bddd3ba507519d0db55bec
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>
if/proc_mgmt.if
if/spawn.if
lib/barrelfish/proc_mgmt_client.c
usr/proc_mgmt/pending_clients.c
usr/proc_mgmt/pending_clients.h
usr/proc_mgmt/service.c
usr/proc_mgmt/spawnd_state.h
usr/spawnd/service.c