History log of /barrelfish-master/usr/spawnd/ps.c
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>


# 11268e99 26-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Break the spawnd kill API into kill + cleanup.

Kill just revokes the DCB, thus removing it from the run queue. Cleanup then
revokes the victim dispatcher's root cnode.

The change is meant to fix the problem where killing the main dispatcher of a
domain or having it naturally exit main() would cause the other dispatchers to
pagefault. This used to happen because dispatchers of the same domain share
their vspace, hence when kill & cleanup were performed together the vspace
of all dispatchers would be revoked as soon as the first dispatcher exited or
was killed.

The process manager attempts to fix the issue by first sending a kill message
to each spawnd running dispatchers for a domain, in order to dequeue the DCBs.
Then, only when all DCBs have been dequeued, a cleanup message is sent to each
spawnd to further clean up the victim's cspace.

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>


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

Implement kill_request_handler in spawnd, using domain caps.

Domain cap hashing is now used by spawnd in a manner similar to the process
manager's, for looking up domains to kill as per incoming kill(domain_cap)
requests.

Note that with the new API and implementation, spawnd no longer tracks domain
exit code or waiters (although some backwards-compatibility is attempted), this
task being now attributed to the process manager (to be implemented).

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


# 559955b4 02-Aug-2011 Simon Peter <speter@inf.ethz.ch>

Merge from ASPLOS tree.