Refactor process manager to enable spawnd discovery.
authorRazvan Damachi <razvan.damachi@gmail.com>
Fri, 9 Jun 2017 14:27:55 +0000 (16:27 +0200)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Thu, 31 Aug 2017 14:35:07 +0000 (16:35 +0200)
commit0d01b285598e1cf381d0ef8d78815d85a0d4930c
tree27d475e299f57dcab4ae0e34fe70c1c7f2a9d2ad
parentdf2c21c495263df24236cc687e0d47fa4d362386
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>
25 files changed:
errors/errno.fugu
if/intermon.if
if/monitor.if
if/proc_mgmt.if
if/spawn.if
include/barrelfish/core_state.h
include/barrelfish/domain.h
include/barrelfish/proc_mgmt_client.h
include/barrelfish/spawn_client.h
lib/barrelfish/Hakefile
lib/barrelfish/domain.c
lib/barrelfish/proc_mgmt_client.c
lib/barrelfish/spawn_client.c
usr/monitor/include/monitor.h
usr/monitor/inter.c
usr/monitor/main.c
usr/monitor/monitor_server.c
usr/monitor/spawn.c
usr/proc_mgmt/Hakefile
usr/proc_mgmt/internal.h
usr/proc_mgmt/main.c
usr/proc_mgmt/service.c
usr/proc_mgmt/spawnd_state.c [new file with mode: 0644]
usr/proc_mgmt/spawnd_state.h [new file with mode: 0644]
usr/spawnd/service.c