[Barrelfish-users] How to terminate a spanned domain

Simon Peter speter at inf.ethz.ch
Fri Nov 23 20:27:02 CET 2012


Hi Georgios,

Domain exit (and especially cleanup of memory) of spanned domains is not 
yet implemented, unfortunately. This is why you're seeing these errors.

I believe it should be fairly easy to just make each dispatcher 
unrunnable individually from within the domain, if you don't care about 
leaking memory. Doing the cleanup is more involving: You need to design 
and implement a protocol for spawnd to tell each involved core to 
cleanup its local dispatcher. This involves first tracking which 
dispatchers belong to which domain, which is also not implemented.

Hope this helps,
Simon

On 11/23/2012 05:41 AM, Georgios Varisteas wrote:
> Hi,
>
> Assume a shared-memory application. Its domain is spanned over multiple kernels. The application terminates and it seems all run smoothly. Trying to re-execute the same app, spanning its domain again over the same kernels, will result in errors similar to the following. The app re-executes normally so I presume the errors are due to the first execution of the same app.
>
> kernel 3: user page fault WHILE DISABLED in 'yspan3': addr 0 IP 46cfc8, error 0x4
> kernel 3: user page fault WHILE DISABLED in 'yspan3': addr 46cfe6 IP 46cfe6, error 0x7
> kernel 3: user page fault WHILE DISABLED in 'yspan3': addr 46cfe6 IP 46cfe6, error 0x7
> kernel 3: generic_handle_user_exception: too many faults, making domain unrunnable
> kernel 1: user page fault WHILE DISABLED in 'yspan1': addr 0 IP 46cfc8, error 0x4
> kernel 1: user page fault WHILE DISABLED in 'yspan1': addr 46cfe6 IP 46cfe6, error 0x7
> kernel 1: user page fault WHILE DISABLED in 'yspan1': addr 46cfe6 IP 46cfe6, error 0x7
> kernel 1: generic_handle_user_exception: too many faults, making domain unrunnable
> kernel 2: user page fault WHILE DISABLED in 'yspan2': addr 0 IP 46cfc8, error 0x4
> kernel 2: user page fault WHILE DISABLED in 'yspan2': addr 46cfe6 IP 46cfe6, error 0x7
> kernel 2: user page fault WHILE DISABLED in 'yspan2': addr 46cfe6 IP 46cfe6, error 0x7
> kernel 2: generic_handle_user_exception: too many faults, making domain unrunnable
>
> My assumption is that the domain of the app's first execution is not automatically terminated on exit. All threads do exit explicitly (thread_exit()). If I'm correct, is there a way to kill a domain on app exit from userspace (or just make it unrunnable)? If not could any one provide an explanation to this behavior?
>
> cheers,
> Georgios Varisteas
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users




More information about the Barrelfish-users mailing list