[Barrelfish-users] How to terminate a spanned domain

Georgios Varisteas yorgos at kth.se
Sat Nov 24 11:10:21 CET 2012


Hi Simon,

Thanks for explaining. I think we've talked about this again in the past. At some point I will just have to implement this functionality, but right now it's not a priority. We are finalizing our port of the Cilk++ programming model; I guess the first release will just include a warning about it...

cheers,
Georgios

________________________________________
From: Simon Peter [speter at inf.ethz.ch]
Sent: Friday, November 23, 2012 20:27
To: Georgios Varisteas
Cc: barrelfish-users at lists.inf.ethz.ch
Subject: Re: [Barrelfish-users] How to terminate a spanned domain

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